При работе в программе «1С:Бухгалтерия предприятия 2.0» пользователи часто сталкиваются с необходимостью корректировки данных в печатных формах, в частности, в Универсальном передаточном документе (УПД). Одной из таких задач является изменение номера и даты приказа, на основании которого действует уполномоченное лицо. Эта информация обычно располагается в нижней части документа, под строкой «Всего к оплате».
Сложность ситуации заключается в том, что в типовой версии конфигурации 2.0 поле для номера приказа в стандартных регистрах может отсутствовать, а сама форма УПД может быть доработана программистами под нужды конкретной организации. Рассмотрим подробно, как найти источник этих данных и внести необходимые изменения.
Прежде чем приступать к изменениям, нам необходимо выяснить, является ли печатная форма УПД стандартной (встроенной в конфигурацию) или внешней. Для этого проанализируем следующие моменты:
.epf.УниверсальныйПередаточныйДокумент. Если рядом с объектом стоит иконка «замочка», конфигурация типовая. Если замочка нет — в программу вносились изменения.В рассматриваемом нами случае выяснилось, что форма встроена в конфигуратор, но была изменена вручную (замочек снят), и в коде прописано получение данных из регистра.
Чтобы понять, откуда программа берет «номер приказа», проанализируем фрагмент кода, отвечающий за заполнение параметров печати. В доработанных конфигурациях часто встречается запрос к регистру сведений ОтветственныеЛицаОрганизаций. Рассмотрим пример такого запроса:
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ОтветственныеЛицаОрганизацийСрезПоследних.ФизическоеЛицо,
| ОтветственныеЛицаОрганизацийСрезПоследних.Должность,
| ОтветственныеЛицаОрганизацийСрезПоследних.НомерДатаПриказа,
| ЕСТЬNULL(ФИОФизЛицСрезПоследних.Фамилия, """") КАК Фамилия,
| ЕСТЬNULL(ФИОФизЛицСрезПоследних.Имя, """") КАК Имя,
| ЕСТЬNULL(ФИОФизЛицСрезПоследних.Отчество, """") КАК Отчество
|ИЗ
| РегистрСведений.ОтветственныеЛицаОрганизаций.СрезПоследних(
| &ДатаДок,
| ОтветственноеЛицо = ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.НачальникОСУГ)
| И СтруктурнаяЕдиница = &Организация) КАК ОтветственныеЛицаОрганизацийСрезПоследних
|ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних(&ДатаДок, ) КАК ФИОФизЛицСрезПоследних
|ПО ОтветственныеЛицаОрганизацийСрезПоследних.ФизическоеЛицо = ФИОФизЛицСрезПоследних.ФизЛицо";
Обратим внимание на строку ОтветственныеЛицаОрганизацийСрезПоследних.НомерДатаПриказа. Это означает, что в регистре сведений существует дополнительный ресурс (поле), который не предусмотрен в стандартной поставке 1С. Именно из него система получает строку вида «114п от 25.04.2017».
Если мы обнаружили, что данные хранятся в регистре ОтветственныеЛицаОрганизаций, но при открытии этого регистра через интерфейс программы (Предприятие) мы не видим колонки с номером приказа, значит, это поле просто не выведено на форму. Разберем по шагам, как это исправить:
ФормаСписка (или ФормаЗаписи).НомерДатаПриказа.Теперь вернемся в режим «Предприятие». Откроем регистр (через меню «Операции» — «Регистры сведений»). Теперь в списке появилась колонка Номер приказа. Найдем нужную запись для ответственного лица (например, для руководителя или уполномоченного лица) и просто впишем туда актуальный номер и дату приказа. После сохранения записи в печатной форме УПД отобразятся обновленные данные.
Если в вашем регистре ответственных лиц нет поля «НомерДатаПриказа», проанализируем другие места, где 1С может хранить сведения о полномочиях:
РегистрацияВФНС. Проверьте карточку организации, закладку «Налоговая инспекция».УниверсальныйПередаточныйДокумент в Конфигураторе и убедитесь, что в нужной ячейке стоит параметр (например, [УполномоченноеЛицо]), а не фиксированный текст «по приказу № 123».Если вы не хотите менять конфигурацию (править формы), но точно знаете, что ресурс в регистре есть, воспользуемся Универсальным подбором и обработкой объектов (или стандартной «Групповой обработкой справочников и документов»).
Рассмотрим этот процесс:
УниверсальныеПодборИОбработкаОбъектов.epf (ее можно найти на диске ИТС или в папке установки платформы).НомерДатаПриказа, установим новое значение и нажмем «Выполнить».Важный совет: После изменения номера приказа обязательно сформируйте УПД заново и проверьте правильность заполнения. Помните, что данные в регистре сведений являются периодическими. Если вы хотите, чтобы старые документы печатались со старым номером приказа, а новые — с новым, создайте в регистре новую запись с новой датой начала действия (реквизит Период).
Таким образом, мы проанализировали ситуацию от поиска причины проблемы в программном коде до реализации конкретных способов изменения данных в пользовательском интерфейсе. Подход с выводом скрытого поля на форму является наиболее надежным для долгосрочной эксплуатации программы.