Как отменить формирование отчета в 1с
Длительные операции на сервере
Область применения: управляемое приложение.
1. При разработке конфигураций следует избегать длительных вызовов из клиентского кода в серверный. Все длительные серверные вызовы, которые могут выполняться более 8 секунд в обычных сценариях работы пользователя, следует выполнять асинхронно, с помощью фонового задания.
К таким операциям относятся: формирование отчета, групповая обработка объектов, загрузка или выгрузка данных в другое приложение, заполнение больших табличных частей и т.п.
В противном случае такие вызовы могут привести к потере работоспособности приложения или затруднению работы с ним:
- браузер может предложить прекратить длительно выполняющийся сценарий, после чего приложение станет неработоспособным;
- веб сервер может прервать длительное обращение к серверу 1С:Предприятия и вернуть ошибку 504 (шлюз не отвечает);
- в случае длительного выполнения операции, у пользователя нет возможности отменить ее.
2.1. Общий подход к асинхронному выполнению длительных серверных операций с помощью фонового задания:
-
Код, выполняющий длительную обработку данных, располагается в модуле менеджера объекта* или в общем модуле. Результат своей работы он помещает во временное хранилище;
а для прочих мест – выводится блокирующая форма ( РежимОткрытияОкна = БлокироватьОкноВладельца ), на которой размещена декорация с анимированной картинкой и кнопка «Отмена» :
2.2. Асинхронное формирование отчета требуется только для тех отчетов, которые
- разработаны без использования СКД или с использованием СКД, но с переопределенной процедурой формирования отчета (переопределен обработчик кнопки «Сформировать» или в обработчике модуля отчета ПриКомпоновкеРезультата устанавливается СтандартнаяОбработка = Ложь ).
- и формирование которых, как правило, занимает длительное время.
Поведение таких отчетов должно быть максимально похожим на поведение отчетов на базе СКД, а именно:
- форму отчета не следует блокировать на время его формирования;
- пользователь может изменить настройки и переформировать отчет, не дожидаясь окончания его формирования;
- при закрытии формы отчета, формирование отчета прерывается.
3. При использовании в конфигурации Библиотеки стандартных подсистем в распоряжении разработчика имеются вспомогательные функции и процедуры общих модулей ДлительныеОперации , ДлительныеОперацииКлиент , а также процедура УстановитьСостояниеПоляТабличногоДокумента общего модуля ОбщегоНазначенияКлиентСервер .
Пример выполнения функции в фоновом задании при использовании в конфигурации Библиотеки стандартных подсистем. В модуле менеджера объекта размещена функция, которая выполняет поиск настроек и возвращает их:
Функция ОпределитьНастройкиУчетнойЗаписи(АдресЭлектроннойПочты, Пароль) Экспорт
.
Возврат Настройки;
КонецФункции
В форме объекта выполняется вызов этой функции в фоновом задании в три этапа:
1) запуск фонового задания на сервере,
2) подключение обработчика завершения фонового задания на клиенте,
3) обработка результата выполнения фонового задания.
&НаКлиенте
Процедура НастроитьПараметрыПодключенияАвтоматически()
// 1. Запуск фонового задания на сервере.
ДлительнаяОперация = НачатьПоискНастроекУчетнойЗаписи();
// 2. Подключение обработчика завершения фонового задания.
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
Оповещение = Новый ОписаниеОповещения("ПриЗавершенииПоискаНастроек", ЭтотОбъект);
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, Оповещение, ПараметрыОжидания);
КонецПроцедуры
&НаСервере
Функция НачатьПоискНастроекУчетнойЗаписи()
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияФункции(УникальныйИдентификатор);
Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, "Справочники.УчетныеЗаписиЭлектроннойПочты.ОпределитьНастройкиУчетнойЗаписи",
АдресЭлектроннойПочты, Пароль);
КонецФункции
// 3. Обработка результата выполнения фонового задания.
&НаКлиенте
Процедура ПриЗавершенииПоискаНастроек(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда // Пользователь отменил задание.
Возврат;
КонецЕсли;
Если Результат.Статус = "Ошибка" Тогда
ВызватьИсключение Результат.КраткоеПредставлениеОшибки;
КонецЕсли;
Настройки = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
УдалитьИзВременногоХранилища(Результат.АдресРезультата);
УстановитьНастройкиУчетнойЗаписи(Настройки);
Методическая рекомендация (полезный совет)
3.1. При каждом выполнении фонового задания его результат помещается во временное хранилище на время жизни формы:
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияФункции(УникальныйИдентификатор);
ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, ПараметрФоновогоЗадания);
Если длительная операция выполняется пользователем многократно, пока эта форма открыта, то временные хранилища накапливаются, что вызывает рост потребления памяти. Поэтому для уменьшения расхода оперативной памяти в большинстве случаев рекомендуется очищать временное хранилище сразу после получения результата фонового задания:
Настройки = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
УдалитьИзВременногоХранилища(Результат.АдресРезультата); // Данные во временном хранилище больше не требуются.
Если же результат фонового задания требуется сохранять на протяжении нескольких серверных вызовов, то необходимо передавать фиксированный адрес заранее инициализированного временного хранилища:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ)
АдресРезультатаФоновогоЗадания = ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор); // Резервируем адрес временного хранилища
КонецПроцедуры
&НаСервере
Функция НачатьПоискНастроекУчетнойЗаписи()
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияФункции(УникальныйИдентификатор);
ПараметрыВыполнения.АдресРезультата = АдресРезультатаФоновогоЗадания; // всегда используем одно и то же временное хранилище
Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения,
"Справочники.УчетныеЗаписиЭлектроннойПочты.ОпределитьНастройкиУчетнойЗаписи",
АдресЭлектроннойПочты, Пароль);
КонецФункции
4. Если в конфигурации реализуются алгоритмы, инициирующие запуск фоновых заданий или запись данных информационной базы без участия пользователя (например, регулярное обновление информации в открытой форме), то в них следует проверять, что в текущем сеансе не установлен монопольный режим. В противном случае, следует блокировать попытки выполнения таких действий. Например:
Если МонопольныйРежим() Тогда
Возврат;
КонецЕсли;
5. В некоторых случаях возникает необходимость в выполнении длительных операций, требующих установки монопольного режима доступа к информационной базе. Например:
Обновление данных ИБ при первом интерактивном запуске программы после обновления конфигурации; Выгрузка данных информационной базы в файл для перехода в сервис; Использования монопольного режима для снижения времени выполнения массовых операций по изменению данных;При этом необходимо сначала устанавливать монопольный режим, а затем выполнять запуск фонового задания, которое реализует саму длительную операцию. В этом случае фоновым заданием будет унаследован монопольный режим, ранее установленный из пользовательского сеанса (см. документацию к платформе).
На время выполнения этого фонового задания следует блокировать весь интерфейс приложения, открывая форму ожидания завершения операции в режиме РежимОткрытияОкна = БлокироватьВесьИнтерфейс. Блокировать интерфейс приложения требуется потому, что на время выполнения задания полноценная работа пользователя с приложением уже невозможна:
- Если пользователь(*) попытается записать какой-либо объект, это приведет к ошибке (из-за установленного монопольного режима);
- В ряде случаев могут запускаться фоновые задания в качестве реакции на действия пользователя случае (при поиске в динамическом списке, при вводе по строке, формировании отчетов и пр.), которые также завершатся с ошибкой.
Кроме того, на самой форме ожидания длительной операции не следует размещать элементы управления, которые могут приводить к запуску таких фоновых заданий. Например: поля ввода, динамические списки и отчеты.
* Примечание: ошибки записи также возникают в тех случаях, когда объекты записываются программно, например, из обработчиков ожидания. В них также следует проверять монопольный режим согласно п.5.
"Нажать" Ctrl-Break программно не вариант? Либо использовать любую программу для автоматизации (Я н.п. обычно пользую AC Tool).
Либо написать скрипт на VB, что-то типа:
8.
kalimehtar
02.01.12 15:29
(1) yuriyscr,
А экранная клавиатура не спасает?
В коде есть ОбработкаПрерыванияПользователя(). На клиенте.
"Прерывание работы модуля клавишами Ctrl+Break может быть выполнено пользователем, только если в процессе работы модуля выполняется вызов процедуры глобального контекста ОбработкаПрерыванияПользователя(). Данная процедура проверяет, не было ли нажатия пользователем клавиш Ctrl+Break, и если было, прерывает работу модуля.
Вызов этой процедуры имеет смысл выполнять внутри циклов, выполнение которых может занять продолжительное время.
Прерывание выполняется безусловно, без запроса подтверждения. Это позволяет использовать данную процедуру и при выполнении длительных транзакций.
Прерывание работы модуля возможно не во всех обработчиках, а только в тех, которые сопровождают явно вызываемые пользователем действия в формах или в глобальном командном интерфейсе. Например, возможно прерывание обработчика Нажатие() элемента управления Кнопка, но невозможно прерывание обработчика формы ПриОткрытии().
Следует учитывать, что прерывание выполняется только в момент вызова процедуры ОбработкаПрерыванияПользователя(). Выполнение длительных операций вызываемых из модулей, например, запросов, не может быть прервано."
Так ведь дело в том, что нету клавиши "Пауз\Брэйк".
А с экранной клавиатуры не получится - т.к. фокус (активное окно/задача) - не обработка.
Формирование сведений о работниках по форме СЗВ-ТД для представления в ПФР
Форма заполняется отдельно на каждого сотрудника, если в отчетном месяце произошло одно из событий:
прием на работу;
перевод на другую работу;
увольнение с работы;
подано заявление сотрудником о порядке ведения трудовой книжки — на бумажном носителе или в электронном виде.
Порядком, утв. постановлением Правления ПФР от 25.12.2019 № 730п, предусмотрено еще несколько мероприятий, которые необходимо отражать в форме СЗВ-ТД, это (п. 2.5.3 Порядка):
изменение наименования страхователя;
установление (присвоение) работнику второй и последующей профессии, специальности или иной квалификации;
лишение права в соответствии с приговором суда занимать определенные должности и заниматься определенной деятельностью.
Обратите внимание, если сведения представляются на сотрудника впервые, то необходимо также (помимо события, с которыми связана подача отчета) указать последнее по времени кадровое событие, произошедшее с сотрудником до 01.01.2020 у данного страхователя.
При этом заполняются все графы формы СЗВ-ТД в соответствии с пунктами 2.5.1–2.5.8 Порядка (п. 2.9 Порядка).
Если в течение 2020 года по сотруднику не было кадровых мероприятий и (или) он не подал заявление о порядке ведения его трудовой книжки, то сведения о трудовой деятельности по состоянию на 01.01.2020 у этого страхователя на такого сотрудника представляются не позднее 15.02.2021 (пп. 1 п. 2.5. ст. 11 Федерального закона от 01.04.1996 № 27-ФЗ).
Если в течение 2020 года по сотруднику не было кадровых мероприятий и (или) он не подал заявление о порядке ведения его трудовой книжки, то сведения о трудовой деятельности по нему представлять не надо («нулевую» СЗВ-ТД сдавать не нужно).
Начиная с 09.04.2020 и до 31.12.2020 в случае приема на работу и увольнения сотрудника отчет по форме СЗВ-ТД представляется в ПФР не позднее рабочего дня, следующего за днем издания приказа (распоряжения) (Постановление Правительства РФ от 08.04.2020 № 460).
Корректировка и отмена кадровых мероприятий по СЗВ-ТД
Если необходимо отменить ранее переданные сведения о трудовой деятельности, то нужно в форме СЗВ-ТД указать только одну строку с ранее представленными сведениями о кадровом мероприятии с признаком их отмены (знак «X») (п. 2.6 Порядка).
Исправление кадровых мероприятий по СЗВ-ТД в «1С:Зарплате и управлении персоналом 8»
В программе «1С:Зарплата и управление персоналом 8» редакции 3 кадровые мероприятия считаются переданными в ПФР, если в документе Сведения о трудовой деятельности работников, СЗВ-ТД установлен флаг Документ принят в ПФР (не редактируется).
Обратите внимание, если что-нибудь изменить в кадровом документе (например, сведения о мероприятии, которые были переданы в ПФР, или просто отменить проведение), прежняя запись регистрируется как отмененная. После повторного проведения измененного или снятого с проведения документа сформируется новое мероприятие. При изменении в форме СЗВ-ТД будет сформировано: первая строка с ранее переданными сведениями с признаком отмены; вторая строка — с новыми измененными данными о мероприятии. При снятии документа с проведения формируется строка с ранее переданными сведениями о мероприятии с признаком отмены.
Если в кадровом документе меняются сведения, которые не передаются в фонд (суммы постоянных начислений, право на отпуск и т. д.), то при проведении документа новое мероприятие в последующем формироваться не будет.
Корректировка переданных кадровых мероприятий
Пример 1
Сотрудник принят в организацию 20.07.2020. Эти сведения были переданы в ПФР. В августе обнаружили ошибку: сотрудник был принят на работу 27.07.2020. Необходимо сформировать корректировку по форме СЗВ-ТД.Так как данные были приняты ПФР (установлен флаг Документ принят в ПФР (не редактируется)), в верхней части кадрового документа выводится предупреждение о том, что данные по этому мероприятию переданы в ПФР и редактирование документа нежелательно. Для изменения данных документа следует нажать кнопку Еще, выбрать команду Изменить документ и изменить некорректные данные. В нашем Примере 1 изменить дату приема сотрудника на работу.
При формировании формы СЗВ-ТД за август 2020 года по сотруднику будут сформированы две строки: строка с признаком отмены ранее переданных сведений и строка с корректными сведениями (рис. 2). В качестве даты отмены указывается дата на рабочем компьютере, когда корректировались сведения кадрового документа.
Пример 2
В ПФР были переданы сведения с неверным номером приказа. Был указан номер с префиксом — ШФ00-000001. Номера приказов организация в бумажную трудовую книжку вносит без префиксов. Чтобы сведения в электронном и бумажном виде были одинаковы, принято решение подать корректировку по форме СЗВ-ТД.В нашем Примере 2 следует изменить номер приказа и затем нажать на кнопку Провести и закрыть.
Сведения, которые были изменены, будут отражены в форме СЗВ-ТД автоматически при последующем их формировании (рис. 4). В форме появится строка с признаком отмены ранее переданных сведений и строка с корректными сведениями.
Если в программе используются номера приказов с префиксом (например, ШФ00-00001) и они вносятся в бумажную трудовую книжку, при этом необходимо, чтобы такие номера отражались в сведениях, нужно в дополнительных настройках снять флаг Удалять префиксы организации и ИБ из номеров кадровых приказов (раздел Настройка — Дополнительные настройки). Если такой вариант не подходит и в базе ведется своя нумерация документов, то можно в кадровом документе в поле Печатать как вручную указать необходимый номер документа. Если номер заполнен в этом поле, то он будет отражен в форме СЗВ-ТД.
Отмена переданных кадровых мероприятий
Пример 3
Пример 4
За июль 2020 года по сотруднику были переданы сведения по форме СЗВ-ТД, так как он был лишен права в соответствии с приговором суда заниматься деятельностью по управлению транспортным средством. В августе обнаружили, что сведения были переданы по другому сотруднику — однофамильцу. Необходимо сформировать отмену кадрового мероприятия. 1С:ИТСО регистрации отмены в 1С подачи заявления сотрудника о продолжении ведения работодателем бумажной трудовой книжки либо о предоставлении сведений о трудовой деятельности в электронном виде см. в справочнике «Кадровый учет и расчеты с персоналом в программах 1С» раздела «Инструкции по учету в программах 1С» .
От редакции. На странице 1С:Лектория в 1С:ИТС см. видеозапись лекции от 03.09.2020 «Обзор последних изменений в программе „1С:Зарплата и управление персоналом 8“. Электронные трудовые книжки, особенности представления СЗВ-ТД» с участием представителей ПФР и экспертов 1С. Подробнее — на странице 1С:Лектория .
Аудит 1С — это комплекс мер, направленных на выявление и ликвидацию ошибок ПО. С помощью аудита определяют текущее состояние программы, правильность настройки и доработки автоматизированной системы.
Цель аудита — обеспечение безошибочной, бесперебойной и эффективной работы информационной системы «1С:Предприятие 8».
В результате аудита удаётся минимизировать риск ошибок налогового и бухгалтерского учёта, повысить уровень контроля, ускорить и упростить подготовку отчётных документов, что улучшает эффективность работы как отдельных подразделений, так и предприятия в целом.
Проведение аудита 1С
Компания «BRG» — официальный партнёр «1С». Мы работаем с 1999 года и предлагаем аудит программных продуктов на платформе 1С. Высокое качество наших услуг подтверждено прохождением сертификации в соответствии со стандартом ISO 9001:2015.
В ходе аудита «1С:Предприятие 8» мы проверим, обеспечивает ли автоматизированная система корректное ведение бухгалтерского и налогового учёта. В случае необходимости, мы восстановим или заново организуем учёт, а также грамотно настроим ПО в соответствии со спецификой предприятия.
Для чего нужен аудит 1С?
Аудит информационной базы «1С:Предприятие 8» направлен на проверку правильности и полноты отображения программным обеспечением хозяйственных операций в бухгалтерском и налоговом учёте, а также выявление причин расхождения между аналитическими и фактическими данными. В ходе аудита специалисты компании BRG проверят:
- корректность формирования бухгалтерских проводок;
- правильность использования аналитики (субконто) для организации учета;
- соответствие данных бухгалтерского и налогового учёта фактическим показателям;
- полноту использования возможностей ПО сотрудниками предприятия.
Для каждой выявленной ошибки будет установлена и устранена причина её возникновения.
Сотрудникам предприятия будут даны практические рекомендации, как самостоятельно исправлять ошибки, возникающие при работе с ПО или на что обращать внимание ещё на этапе внедрения. Также будет определен уровень грамотности пользователей 1С и при необходимости проведен инструктаж.
Как исправляют ошибки, возникшие при работе с программой
Исправление ошибок, возникших при работе с программой, предполагает следующие шаги:
-
системы на предмет соответствия их учёту. В каждом разделе проводится анализ настроек, при необходимости убирают лишние и добавляют новые.
- Проверка учётной политики и налогов в 1С на соответствие действующей на предприятии.
- Формирование отчета «Сверка данных оперативного и бухгалтерского учёта». Отчётная форма показывает расхождения между данными регистров и оборотно-сальдовой ведомостью. Чаще всего ошибки являются следствием операций, проведенных вручную, когда бухгалтер откорректировал проводки, а регистры оставил без изменений.
- Проверка и настойка прав пользователей.
- Установка даты запрета редактирования, которая может быть предусмотрена как для отдельных пользователей 1С, так и для определённых разделов учета.
Данные ошибки являются наиболее распространенными, однако причин, вызвавших «косяки» в работе программного продукта, может быть множество. Специалисты компании BRG выявят все ошибки в работе «1С:Предприятие 8», установят их причины и предотвратят их появление в будущем.
Виды аудита 1С
Аудит «1С:Предприятие 8» проводится в плановом и внеплановом порядке. Плановый аудит — это проверка, которая проводится согласно установленного графика с целью поддержания автоматизированной системы в оптимальном состоянии.
Внеплановый аудит — это оперативная проверка, необходимость которой обусловлена каким-либо ЧП. Это может быть резкое снижение работоспособности или полня остановка системы, заражение вирусом, риск кражи информации, поломки серверного оборудования, сбой в электроснабжении, ошибки или преднамеренные действия со стороны недобросовестных сотрудников и прочее.
Также внеплановый аудит рекомендован при смене главного бухгалтера предприятия.
Восстановление учета в базе 1С
Часто следствием ЧП, причиной которого является человеческий фактор, программный или аппаратный сбой, становится нарушение целостности базы данных.
Повреждение, изменение или утрата баз данных 1С может спровоцировать серьёзный кризис и даже остановить работу предприятия.
Для возобновления нормальной работы и недопущения финансовых потерь, к которым могут привести ошибки в налоговом и бухгалтерском учёте, проводят восстановление учёта в базе 1С.
Как проводится восстановление учета в 1С
Чтобы восстановить на предприятии учёт и обеспечить корректную работу «1С:Предприятие 8», специалисты BRG:
- Проводят внеплановый аудит 1С и определяют план действий.
- Проверяют состояние документации на предприятии, достоверность и актуальность информации в базе данных. Первой аналитической обработке подвергают доходную и расходную документацию, а затем анализируют все остальные разделы учёта.
- Восстанавливают (повторно заносят в базу данных 1С) первичные документы, включая: накладные, счета-фактуры, приходные и расходные ордера, банковские выписки и прочее.
- Формируют отчётность за исследуемый отрезок времени. Предоставляют заказчику данные о выявленных отклонениях с данными, указанными в имеющейся отчетности. Если отчётность уже сдана, производится подача уточненных деклараций.
Скорость выполнения работ зависит от степени повреждения базы, наличия резервной копии, состояния первичной документации на предприятии и прочих факторов.
Учитывая индивидуальную специфику каждого предприятия и уникальность ситуации, восстановление учёта в 1С требует различных решений и исключает использование стандартного алгоритма действий.
Наиболее сложными являются ситуации, когда ведение учета в 1С осуществлялось некомпетентным бухгалтером или против предприятия была совершена преднамеренная диверсия — недобросовестный сотрудник специально вносил в базу данных путаницу или уничтожил документы. Чтобы разобраться в произошедшем, наведя порядок в первичных документах и электронной базе, необходима слаженная работа команды бухгалтеров и IT-специалистов.
Наши преимущества
Компания «BUSINESS RELATIONSHIP GROUP» восстановит бухгалтерский и налоговый учёт в 1С, обеспечив грамотное занесение в базу данных первичной документации с учетом всех особенностей работы предприятия. Также мы настроим документы, отчеты, справочники в 1С под индивидуальные нужды компании.
Мы сотрудничаем с предприятиями и организациями всех форм собственности, которые относятся к любым сферам деятельности. Обращайтесь к нам, если базы данных вашего предприятия были повреждены или утрачены. Наши специалисты сделают всё возможное, чтобы работоспособность «1С: Предприятие 8» была восстановлена как можно быстрее.
Также мы открыты к сотрудничеству с компаниями, которые ранее не использовали автоматизированную систему учёта и хотят внести данные в 1С за прошлые периоды.
Читайте также: