Добавление итога по количеству в электронном документе Товарной накладной

Клиент обнаружил что печатная форма товарной накладной в ЭДО не содержит итогов по количеству:

Сначала я подумал, что это обычная товарная накладная и потратил время на поиски процедуры печати, но не тут-то было. В обычной итог по количеству был.

Запустив поиск по макетам по «Наименование товара (описание выполненных работ, оказанных услуг), имущественного права» я нашел макет, который используется для товарной накладной:

Далее нужно было найти модуль, который формирует эту печатную форму:

Печатная форма заполняется в процедуре ЗаполнитьТабличныйДокументПередачаТоваров из модуля ОбменСКонтрагентамиВнутренний.

Правда, формируется он в фоновом задании, поэтому точка останова не срабатывала, пока не поставил автоматическое подключение к фоновым заданиям:

Процедуру целиком добавил в расширение:

&Вместо(«ЗаполнитьТабличныйДокументПередачаТоваров»)
Процедура эдодп_ЗаполнитьТабличныйДокументПередачаТоваров(ТабличныйДокумент, ДанныеПечати, ДанныеПокупателя, ПараметрыПечати)

   
// Итоги
   
Итоги.Параметры.Заполнить(ДанныеПечати.Шапка);

   
//Осипов — добавляем числовой итог +++
   
ТекОбласть = Итоги.Область(1, 7);
    Попытка
       
ТекИтогоКол = ДанныеПечати.Товары.Итог(«Количество»);
    Исключение
       
ТекИтогоКол = 0;
    КонецПопытки;

   
ТекОбласть.Текст = Формат(ТекИтогоКол, «ЧДЦ=3; ЧРД=,»);
   
ТекОбласть.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Право;

   
//Для обведения
   
ТекЛиния = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
   
ТекОбласть.ГраницаСлева = ТекЛиния;
   
ТекОбласть.ГраницаСправа = ТекЛиния;
   
ТекОбласть.ГраницаСнизу = ТекЛиния;
   
ТекОбласть.ГраницаСверху = ТекЛиния;
   
//—



КонецПроцедуры

Первая попытка получилась не совсем красивой — не хватало рамки:

Добавил рамку и получилось хорошо:

Время: 1 час.

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

комментариев 18

  1. Павел:

    Иллюстрация лозунга — не ходите дети в 1с. Будете тоже львиное время заниматься откровенной ерундой роясь в кишках идиотской архитектуры

    • Да, работать в 1С — это вам не «скрипты писать», как утверждают некоторые.

      • Павел:

        Свдя по твоим примерам это как раз скриптописание, причем самого отвратного толка. Сначала полдня ищем «где менять», потом «как поменять чтобы не все не развалилось»

        • Расскажите, как вы будете делать по-другому?
          Как быстро ищете и как меняете «на века».
          Причем за разумный бюджет. 😉
          Это сопровождение, детка.

      • fajij28770:

        все правильно, не «писать скрипты», а сопровождать их.

        • ну, называть типовые скриптами это явное «отрицание реальности», они слишком сложны для скриптов. на 1-2 порядка.

          • fajij28770:

            и зачем вся это сложность тогда, если вы все равно в 1с код копи-пастите?

          • «копи-пастите» — это слишком смелое обобщение. Рекомендую вернуться в рамки нормальной дискуссии.

  2. naf2000:

    Ответь на вопрос. Что будет когда в очередном обновлении 1с будет изменён алгоритм типовой процедуры?

    • Стандартно, нужно будет обновить код в расширении и заново вставить изменения. Вас удивляет использование таких типов расширений?

      • naf2000:

        То есть об этом надо помнить?! Обязательно забудут же.

        Я к чему? Аннотация Вместо без вызова ПродолжитьВызов есть зло

        • Ну вы как будто в первый раз в 1С. Если забудут, то увидят ошибку в формате. Можно использовать анннотацию с контролем, но она еще не доработана должным образом.

          • naf2000:

            Нормальный ход. Особенно если делает робот в фоне. Особенно если ошибка логическая и всё внешне правильно

          • ну вот видите. для параноиков в 1с тоже есть механизмы. 😉

    • Павел:

      Все разрушится… Это и так происходит — есть такая Библиотека Стандартных Подсистем. На ней нпдо основывать свои разработки. Есть консоль запросов. Так чтобы она заработала надо чтобы ее версия и версия «подсистем» совпадали. Иначе велики шансы что она не откроется. Ибо разработчик взял и поменял по простому сигнатуру вызова процедуры где-то в кишках

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *