В процессе работы с обновленными версиями конфигурации 1С:Бухгалтерия предприятия 3.0 (в частности, релиз 3.0.120.14) многие пользователи и технические специалисты столкнулись с неприятной особенностью: в документе Оплата платежной картой внезапно пропало поле Счет на оплату. Это не просто косметическое изменение интерфейса — отсутствие связи со счетом напрямую влияет на корректность формирования кассовых чеков в соответствии с требованиями 54-ФЗ.
В данной статье мы подробно разберем, почему это произошло, проанализируем технические причины бага и рассмотрим несколько способов решения проблемы: от простых пользовательских настроек до программного исправления через расширение.
Прежде чем переходить к исправлению, выясним, на что влияет отсутствие этого реквизита. В системе 1С:Бухгалтерия документ Оплата платежной картой при проведении оплаты от физического лица (эквайринг) используется для пробития чека на онлайн-кассе. Если поле Счет на оплату не заполнено, программа не может "подтянуть" номенклатурный состав (товары, услуги, цены) из документа-основания.
В результате при печати чека вместо детального перечня товаров касса выдает "одну строку" с общей суммой аванса. Для многих видов торговой деятельности, особенно когда товар отгружается сразу, это является нарушением правил ведения кассовых операций. Таким образом, восстановление видимости этого поля критически важно для законной работы розничной точки.
Проанализируем ситуацию с точки зрения конфигуратора. В коде типового решения Бухгалтерия предприятия для этого поля установлены права на просмотр и редактирование, а функциональные опции, как правило, включены. Тем не менее, в режиме 1С:Предприятие поле остается невидимым даже для пользователей с полными правами.
Как показывает практика и сообщения технической поддержки, проблема кроется в ошибке динамического управления элементами формы в релизе 3.0.120.14. Алгоритмы платформы и конфигурации некорректно отрабатывают при создании формы на сервере, ошибочно скрывая элемент управления РасшифровкаПлатежаСчетНаОплату.
Разберем самый правильный и официальный метод решения. Компания 1С признала наличие данной ошибки и выпустила исправления. Рассмотрим действия по порядку:
Если вам нужно вернуть поле "здесь и сейчас" без глобальных обновлений, можно прибегнуть к созданию небольшого расширения. Рассмотрим пример кода, который принудительно вставляет поле ввода на форму документа ОплатаПлатежнойКартой.
Для этого в расширении необходимо перехватить процедуру ПриСозданииНаСервере формы документа. Проанализируем пример реализации:
&НаСервере
Процедура всопк_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
// Определяем место привязки нового элемента относительно существующего
Привязка = Элементы.РасшифровкаПлатежаСчетНаОплату;
// Вставляем новое поле формы в родительскую группу
Элемент = Элементы.Вставить("всопк_СчетНаОплату", Тип("ПолеФормы"), Привязка.Родитель, Привязка);
// Устанавливаем свойства поля
Элемент.Вид = ВидПоляФормы.ПолеВвода;
Элемент.ПутьКДанным = "Объект.РасшифровкаПлатежа.СчетНаОплату";
КонецПроцедуры
Этот метод позволяет обойти программный баг, который скрывает типовой элемент, создавая его дубликат, привязанный к тем же данным объекта. Обратите внимание, что после обновления на исправленный релиз 1С, данное расширение лучше отключить, чтобы избежать дублирования полей на форме.
Иногда, даже после установки исправлений, поле не появляется из-за того, что настройки видимости сохранились в пользовательском кэше. Рассмотрим шаги по очистке настроек:
Оплата платежной картой.Этот несложный прием заставляет платформу перечитать настройки отображения элементов из программного кода конфигурации, игнорируя старые (ошибочные) параметры видимости.
Выясним влияние версии платформы на данную проблему. В некоторых случаях ошибка проявляется более стабильно на версии 8.3.20.1674. Если вы используете эту ветку платформы, рекомендуется также проверить наличие последних обновлений технологической платформы 1С:Предприятие, так как механизмы отрисовки управляемых форм постоянно совершенствуются.
Подведем итог: если вы обнаружили пропажу поля Счет на оплату, в первую очередь проверьте наличие патчей в системе. Если их нет — используйте сброс настроек формы или временное расширение. Помните, что корректное заполнение этого реквизита — залог правильного формирования чека и отсутствия претензий со стороны налоговых органов по 54-ФЗ.