Решив пару мелких задачек, схожих с описанными выше - "курю бамбук", а так как это плохо получается, то решил что-то написать... Иногда на решение задачки уходит довольно много времени, например на описанную ниже, с перерывами на решение срочных и мелких вопросов ушел целый рабочий день. Началось с распоряжения помочь коллеге с какой-то настройкой. Получил от неё техническое задание:
Цитата: Клиент просит сделать настройки в 1С для распечатки счет-договора. Я посмотрела - там нужно вносить изменения в конфигурацию
Позвонил для уточнений: конфигурация "1С:БП", руководитель якобы уже печатал данный документ...
Начал изучать вопрос. Оказалось, что нет такой типовой формы документа в "1С:Бухгалтерии". Копая дальше выяснил варианты решения, о чем и доложил руководителю...
Какое блаженство, что он есть и не нужно брать на себя ответственность за принятые решения!!!
Изучил «задачу», которая, наверное изначально неверно формулировалась? В ИБ кто-то пытался учиться создавать шаблоны документов и возможно когда-то в ней была внешняя печатная форма «счет-договор», которую удалили из ИБ, но требуется добавление внешней печатной формы к счету на предоплату. Путей решения множество, но они все должны учитывать, что такие формы обычно создаются по образцу «заказчика» и
обычный подход через создание текстового шаблона не проходит, т.к. он не подразумевает табличной части для списка товаров:
1. Создание макета в самой 1С:БП
2. Подключение внешней печатной формы, например хххх, а потом подправить данный макет
3. Можно создавать дополнительную реквизиты (область) к типовым документам, в том числе счету покупателю
4. Заказать форму по образцу заказчика, например о таких работах ....
В начале "ляпнул" о варианте №1, а потом начал изучать. Оказалось, что моя "рабочая" конфа от августа 2024 уже устарела и не даёт создавать макеты к счету покупателя:
В то же время актуальный релиз от ноября 2024 уже это позволяет
Пока руководитель согласовывал вопрос и принимал решение я попробовал создавать макет с табличной и текстовой частью, который успешно прикреплялся к документу, как внешний макет и возможно было его "размножение" через механизм сохранения и восстановления:
... но решение было озвучено другим:
Цитата: Андрей, давайте попробуем применить и доработать купленный вариант от инфостарта, на который Вы давали ссылку. Прикрепил обработку к этому письму.
Что же... Прикрепил к тестовой ИБ. Всё отлично сработало, а начал прикреплять к рабочей ИБ и "нате здрасьте;:
Решил посмотреть, что за отчет формируется в фирму "1С". Это архив со скрином экрана и JSON файлом... Почитал его - там всё белым по русскому написано:
Код:
"errorInfo": {
"systemErrorInfo": {
"clientStack": "core83.dll:… ",
"clientStackHash": "8E7223C278DFA0008ECC836952AE3B93"
},
"applicationErrorInfo": {
"errors": [
[
"{ВнешняяОбработка.СчетДоговорПредоплатный.МодульОбъекта(84)}: Индекс находится за границами массива",
[
"ScriptRuntimeError",
"ScriptUseError"
],
"",
""
]
],
Лезу в исходник обработки, благо у Инфостарта - это жесткое требование, что обработки даются лишь в исходном коде. Нахожу строку с ошибкой по Ctrl+G, пытаюсь изучать и думаю "а мне это надо?"... и тупо блокирую исключительную ситуацию:
Сразу видно, что код писал типичный 1С:Программист, не знающий, что хорошая программа работает корректно ни при корректной работе пользователя, а всегда... и правилом "старых" прогеров является тщательная отработка неполноты информации и косяков пользователя!
Исправил четыре таких ошибки, протестил на десятке счетов пары ИБ... Всё заработало, как надо:
Отчитался!... и стал в ужасе ожидать, что форма "Счета-договора" не удовлетворит клиента... и тогда ещё придётся править макет и его заполнение в коде модуля... но
"пронесло" - всех всё устроило!