При ведении учета по государственным контрактам пользователи конфигурации «1С:Управление производственным предприятием» (УПП) часто сталкиваются с ситуацией, когда номер документа содержит 32 символа (например, реестровый номер контракта из ЕИС или длинный идентификатор государственного контракта — ИГК). В то же время типовой реквизит Номер справочника ДоговорыКонтрагентов в 1С:УПП 1.3 имеет ограничение длины в 20 символов.
Разберем методологические и технические способы решения этой задачи, а также проанализируем возможные последствия каждого из подходов.
Прежде чем вносить изменения в базу данных, проанализируем природу вводимого номера. В сфере госзакупок (в рамках 44-ФЗ, 223-ФЗ и 275-ФЗ) 32-значный цифровой код чаще всего является идентификатором государственного контракта (ИГК) либо реестровым номером записи в Единой информационной системе (ЕИС), а не обычным номером договора сторон.
В типовых решениях 1С для этих целей предусмотрена раздельная методология:
Номер хранит внутренний или краткий номер договора контрагента.Если база данных регулярно обновляется до актуальных релизов, проверим наличие типового механизма учета государственных контрактов в форме элемента справочника ДоговорыКонтрагентов. В актуальных версиях УПП для указания государственного контракта и его параметров уже предусмотрен специализированный функционал, поэтому расширять стандартное поле Номер не требуется.
Если типовой функционал госконтрактов не используется или релиз конфигурации не содержит нужных полей, наиболее безопасным способом является хранение полного номера в дополнительных реквизитах (механизм свойств и категорий). Разберем этот вариант по шагам:
Номер укажем краткий номер или первые символы, а полный 32-значный номер зафиксируем на вкладке Свойства.Если требуется вывод этого длинного номера в печатные формы (ТОРГ-12, УПД, Акт сверки), подключим внешние печатные формы. В коде формирования печатного документа прочитаем значение дополнительного реквизита с помощью стандартного запроса к регистру сведений ЗначенияСвойствОбъектов:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗначенияСвойств.Значение КАК ПолныйНомерКонтракта
|ИЗ
| РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойств
|ГДЕ
| ЗначенияСвойств.Объект = &Договор
| И ЗначенияСвойств.Свойство = &СвойствоПолныйНомер";
Запрос.УстановитьПараметр("Договор", ШапкаДокумента.ДоговорКонтрагента);
Запрос.УстановитьПараметр("СвойствоПолныйНомер", ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Номер госконтракта (ЕИС/ИГК)"));
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() И ЗначениеЗаполнено(Выборка.ПолныйНомерКонтракта) Тогда
НомерДляПечати = СокрЛП(Выборка.ПолныйНомерКонтракта);
Иначе
НомерДляПечати = ШапкаДокумента.ДоговорКонтрагента.Номер;
КонецЕсли;
Посмотрим на структуру справочника ДоговорыКонтрагентов: длина стандартного реквизита Наименование составляет 100 символов, что значительно превышает длину реквизита Номер (20 символов). В списках выбора документов, отчетах и формах подбора отображается именно наименование договора.
В этом случае в поле Номер можно занести сокращенную часть номера, а в поле Наименование записать строку вида: Госконтракт № 01234567890123456789012345678901 от 15.01.2024. Это позволит пользователям легко идентифицировать договор во всех интерфейсных формах без изменения метаданных.
Если принято решение изменить структуру метаданных напрямую, снимем справочник ДоговорыКонтрагентов с поддержки и увеличим длину реквизита Номер, например, до 50 символов. Однако перед этим обязательно проанализируем следующие критические риски:
ПолеВвода имеют фиксированную графическую ширину. Увеличение длины реквизита в метаданных не расширит элементы на формах документов (Реализация товаров и услуг, Поступление товаров и услуг, Платежные поручения). Текст длинного номера будет обрезаться визуально, что потребует ручной корректировки десятков экранных форм.ИдГосКонтр). Если длинный номер выгружается как обычный номер договора, документ может не пройти форматно-логический контроль на стороне оператора ЭДО или налоговой службы.Номер осталась типовой (20 символов), произойдет автоматическое усечение данных либо критическая ошибка обмена.Резюме: Оптимальным решением является использование штатного функционала учета госконтрактов/ИГК в актуальных версиях программы либо создание дополнительного реквизита (свойства) с подключением внешних печатных форм. Прямое увеличение длины реквизита в конфигураторе следует применять только при комплексной доработке форм, макетов и правил обмена данными.