Как изменить номер приказа уполномоченного лица в УПД в программе 1С:Бухгалтерия предприятия 2.0

Программист 1С v8.3 (Обычные формы) 1C:Бухгалтерия Бухгалтерский учет
← На главную

При работе в программе «1С:Бухгалтерия предприятия 2.0» пользователи часто сталкиваются с необходимостью корректировки данных в печатных формах, в частности, в Универсальном передаточном документе (УПД). Одной из таких задач является изменение номера и даты приказа, на основании которого действует уполномоченное лицо. Эта информация обычно располагается в нижней части документа, под строкой «Всего к оплате».

Сложность ситуации заключается в том, что в типовой версии конфигурации 2.0 поле для номера приказа в стандартных регистрах может отсутствовать, а сама форма УПД может быть доработана программистами под нужды конкретной организации. Рассмотрим подробно, как найти источник этих данных и внести необходимые изменения.

Шаг 1. Анализ типа печатной формы

Прежде чем приступать к изменениям, нам необходимо выяснить, является ли печатная форма УПД стандартной (встроенной в конфигурацию) или внешней. Для этого проанализируем следующие моменты:

  1. Перейдем в меню Сервис — Дополнительные отчеты и обработки — Дополнительные внешние печатные формы. Если в списке есть УПД, значит, данные нужно править во внешнем файле .epf.
  2. Если внешней формы нет, проверим состояние конфигурации. Откроем Конфигуратор и найдем общий макет УниверсальныйПередаточныйДокумент. Если рядом с объектом стоит иконка «замочка», конфигурация типовая. Если замочка нет — в программу вносились изменения.

В рассматриваемом нами случае выяснилось, что форма встроена в конфигуратор, но была изменена вручную (замочек снят), и в коде прописано получение данных из регистра.

Шаг 2. Поиск источника данных в программном коде

Чтобы понять, откуда программа берет «номер приказа», проанализируем фрагмент кода, отвечающий за заполнение параметров печати. В доработанных конфигурациях часто встречается запрос к регистру сведений ОтветственныеЛицаОрганизаций. Рассмотрим пример такого запроса:


Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               |    ОтветственныеЛицаОрганизацийСрезПоследних.ФизическоеЛицо,
               |    ОтветственныеЛицаОрганизацийСрезПоследних.Должность,
               |    ОтветственныеЛицаОрганизацийСрезПоследних.НомерДатаПриказа,
               |    ЕСТЬNULL(ФИОФизЛицСрезПоследних.Фамилия, """") КАК Фамилия,
               |    ЕСТЬNULL(ФИОФизЛицСрезПоследних.Имя, """") КАК Имя,
               |    ЕСТЬNULL(ФИОФизЛицСрезПоследних.Отчество, """") КАК Отчество
               |ИЗ
               |    РегистрСведений.ОтветственныеЛицаОрганизаций.СрезПоследних(
               |        &ДатаДок,
               |        ОтветственноеЛицо = ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.НачальникОСУГ)
               |        И СтруктурнаяЕдиница = &Организация) КАК ОтветственныеЛицаОрганизацийСрезПоследних
               |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних(&ДатаДок, ) КАК ФИОФизЛицСрезПоследних
               |ПО ОтветственныеЛицаОрганизацийСрезПоследних.ФизическоеЛицо = ФИОФизЛицСрезПоследних.ФизЛицо";

Обратим внимание на строку ОтветственныеЛицаОрганизацийСрезПоследних.НомерДатаПриказа. Это означает, что в регистре сведений существует дополнительный ресурс (поле), который не предусмотрен в стандартной поставке 1С. Именно из него система получает строку вида «114п от 25.04.2017».

Шаг 3. Редактирование регистра сведений

Если мы обнаружили, что данные хранятся в регистре ОтветственныеЛицаОрганизаций, но при открытии этого регистра через интерфейс программы (Предприятие) мы не видим колонки с номером приказа, значит, это поле просто не выведено на форму. Разберем по шагам, как это исправить:

  1. Откроем программу в режиме Конфигуратор.
  2. В дереве метаданных найдем Регистры сведений — ОтветственныеЛицаОрганизаций.
  3. Развернем ветку Формы и откроем ФормаСписка (или ФормаЗаписи).
  4. В редакторе формы добавим на поле ввода или в таблицу колонку, выбрав в качестве данных НомерДатаПриказа.
  5. Сохраним конфигурацию и обновим базу данных (клавиша F7).

Теперь вернемся в режим «Предприятие». Откроем регистр (через меню «Операции» — «Регистры сведений»). Теперь в списке появилась колонка Номер приказа. Найдем нужную запись для ответственного лица (например, для руководителя или уполномоченного лица) и просто впишем туда актуальный номер и дату приказа. После сохранения записи в печатной форме УПД отобразятся обновленные данные.

Шаг 4. Альтернативные способы хранения данных

Если в вашем регистре ответственных лиц нет поля «НомерДатаПриказа», проанализируем другие места, где 1С может хранить сведения о полномочиях:

  1. Регистрация в ИФНС: Иногда сведения об уполномоченных лицах и их документах-основаниях указываются в справочнике РегистрацияВФНС. Проверьте карточку организации, закладку «Налоговая инспекция».
  2. Дополнительные реквизиты: Проверьте, не добавлены ли у физического лица или организации «Дополнительные сведения». В 1С 2.0 это механизм свойств и категорий.
  3. Текст в самом макете: Самый простой (но не правильный) способ доработки — когда номер приказа вписан программистом прямо в текст макета. Откройте макет УниверсальныйПередаточныйДокумент в Конфигураторе и убедитесь, что в нужной ячейке стоит параметр (например, [УполномоченноеЛицо]), а не фиксированный текст «по приказу № 123».

Шаг 5. Работа с универсальными обработками

Если вы не хотите менять конфигурацию (править формы), но точно знаете, что ресурс в регистре есть, воспользуемся Универсальным подбором и обработкой объектов (или стандартной «Групповой обработкой справочников и документов»).

Рассмотрим этот процесс:

Важный совет: После изменения номера приказа обязательно сформируйте УПД заново и проверьте правильность заполнения. Помните, что данные в регистре сведений являются периодическими. Если вы хотите, чтобы старые документы печатались со старым номером приказа, а новые — с новым, создайте в регистре новую запись с новой датой начала действия (реквизит Период).

Таким образом, мы проанализировали ситуацию от поиска причины проблемы в программном коде до реализации конкретных способов изменения данных в пользовательском интерфейсе. Подход с выводом скрытого поля на форму является наиболее надежным для долгосрочной эксплуатации программы.

← На главную