При работе в конфигурации 1С:Бухгалтерия предприятия 2.0 в клиент-серверном варианте (SQL) пользователи могут столкнуться с критической ошибкой во время автозаполнения формы «Декларация по НДС». При этом в локальной файловой базе тот же отчет формируется штатно и без замечаний.
Разберем подробнее текст ошибки, выясним причину такого поведения платформы 1С:Предприятие и рассмотрим практические способы решения проблемы.
Во время нажатия кнопки «Заполнить» в регламентированном отчете система аварийно завершает расчет со следующим сообщением в окне служебных сообщений:
{ОбщийМодуль.РегламентированнаяОтчетность.Модуль(24306)}: Метод объекта не обнаружен (БлижайшийНалоговыйПериод)
Возврат Перечисления.ВариантыРасширенногоПервогоНалоговогоПериода.БлижайшийНалоговыйПериод(Организация, ...
При пошаговой отладке кода видно, что ошибка проявляется при вызове серверной процедуры формирования:
ПараметрыОтчета = Новый Структура();
ПараметрыОтчета.Вставить("ДатаНачалаРасширенногоПериодаОтчета", ДатаНачалаРасширенногоПериодаОтчета());
ПараметрыОтчета.Вставить("мДатаНачалаПериодаОтчета", мДатаНачалаАвтозаполнения);
ПараметрыОтчета.Вставить("мДатаКонцаПериодаОтчета", мДатаКонцаАвтозаполнения);
ПараметрыОтчета.Вставить("Организация", Организация);
ПараметрыОтчета.Вставить("ГруппаОрганизаций", СписокОрганизаций);
ПараметрыОтчета.Вставить("ВидДокумента", ВидДокумента);
ПараметрыОтчета.Вставить("ДатаПодписи", ДатаПодписи);
ПараметрыОтчета.Вставить("Контейнер", Контейнер);
ПараметрыОтчета.Вставить("Декларация", мСохраненныйДок.Ссылка);
АдресХранилища = ПоместитьВоВременноеХранилище(ПараметрыОтчета, Новый УникальныйИдентификатор());
ОбщиеПараметрыЗаполнения = Новый Структура();
ОбщиеПараметрыЗаполнения.Вставить("ВидОтчета", "РегламентированныйОтчетНДСФормаОтчета2017Кв1");
ОбщиеПараметрыЗаполнения.Вставить("АдресХранилища", АдресХранилища);
ЗаполнениеРегламентированнойОтчетностиСервер.ЗаполнитьРегламентированныйОтчет(ОбщиеПараметрыЗаполнения);
Проанализируем архитектурные различия между файловым и клиент-серверным исполнением кода:
#Если ТолстыйКлиентОбычноеПриложение Тогда всегда возвращают значение Истина, поэтому все методы менеджеров объектов компилируются и остаются доступными.ЗаполнениеРегламентированнойОтчетностиСервер.ЗаполнитьРегламентированныйОтчет() передает управление на сторону сервера 1С. В модуле менеджера перечисления Перечисления.ВариантыРасширенногоПервогоНалоговогоПериода экспортная функция БлижайшийНалоговыйПериод была ошибочно обернута в директиву препроцессора для клиента. Серверный компилятор платформы исключает эту функцию из серверной сборки модуля, в результате чего при обращении сервера к менеджеру перечисления возникает исключение «Метод объекта не обнаружен».Для гарантированного выявления таких проблем на этапе разработки используем встроенную проверку конфигурации (меню Конфигурация → Проверка конфигурации...) с обязательным включением флагов «Сервер», «Толстый клиент (обычное приложение)» и «Внешнее соединение».
Разберем по шагам, как исправить программный код, если конфигурация снята с полной поддержки или находится на поддержке с возможностью редактирования:
Перечисления → ВариантыРасширенногоПервогоНалоговогоПериода.БлижайшийНалоговыйПериод.
#Если ТолстыйКлиентОбычноеПриложение ИЛИ Сервер Тогда
Функция БлижайшийНалоговыйПериод(Организация, ДатаРегистрации, ДатаОтчета) Экспорт
// Тело функции
КонецФункции
#КонецЕсли
Также можно полностью удалить обрамляющие директивы #Если ... #КонецЕсли, чтобы сделать экспортные методы менеджера перечисления доступными во всех контекстах выполнения.
Если требуется минимальное вмешательство в структуру конфигурации:
ЗаполнениеРегламентированнойОтчетностиСервер.После включения данного флага контекст вызова позволит корректно обработать все связанные клиентские методы.
Если информационная база находится на строгой типовой поддержке и внесение изменений в метаданные запрещено регламентом предприятия, применяем внешнюю форму отчета:
.epf), выпущенный фирмой «1С» в качестве оперативного исправления..epf.В экстренной ситуации, когда декларацию необходимо сдать срочно, а правка конфигурации или загрузка внешних форм откладывается:
.dt) через меню Администрирование → Выгрузить информационную базу...Рекомендация: Для окончательного устранения проблемы рекомендуется обновить конфигурацию 1С:Бухгалтерия предприятия 2.0 на релиз 2.0.66.43 или более поздний, где ошибка в директивах препроцессора перечисления исправлена разработчиками поставщика.