Несколько табличный частей – это просто

При программировании на платформе V7 достаточно часто возникает задача создать несколько табличных частей документа (или справочника). Традиционно эта задача имеет несколько решений:

автор статьи: Владимир Камышников
Источник: http://hare.ru/

При программировании на платформе V7 достаточно часто возникает задача создать несколько табличных частей документа (или справочника). Традиционно эта задача имеет несколько решений:
  1. Хранение нескольких табличных частей в одной. Данный метод имеет только один плюс, "1С-совместимо". Основной недостаток – часто разные табличные части сильно отличаются форматом и составом полей;
  2. Хранение дополнительной информации путем "сворачивания" данных в строку. Никаких плюсов метод не имеет. Минусы очевидны: возможное нарушение ссылочной целостности;
  3. Хранение табличных частей вне информационной базы. Как и в предыдущем способе гарантировать, что восстановленная ссылка будет корректной, нельзя;
  4. Наконец есть правильный способ – хранение табличных частей в служебных документах.
Этот последний способ позволяет:
  • делать практически неограниченное число табличных частей;
  • избавиться от задач отображения таблицы значений;
  • конфигурации остаться 1С-совместимой;
  • трудозатраты на создание табличной части в типовом случае составляют около 5 (!) минут;
  • ссылочная целостность отрабатывается системой;
Этот способ достаточно известен, однако в предлагаемом решении есть оригинальные моменты (по крайней мере, лично я не встречал подобных подходов).

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

Первый шаг – создание служебного документа. Он не должен проводится, не должен задействовать компоненты платформы и, лучше всего, не должен принадлежать никакому журналу.

Далее, в табличной части этого документа создаем необходимые реквизиты. Даже те, которые не должны отображаться. В поле "Синоним" указываем то название, которое должно отображаться в колонке. На рисунке 1 имеется реквизит табличной части "ОбъемПриДаннойТемп", который в колонке таблицы будет отображаться как "V при tc".

В поле "Комментарий" можно указывать команды форматирования таблицы (необычная фича, да? ;-). В данном случае задается ширина колонки таблицы, 11 единиц. Сейчас у меня поддерживается несколько таких команд:

  • "Ширина=ХХХ;" – установить ширину в ХХХ;
  • "Скрыть;" – скрыть колонку;
  • "Иконка;" – отображать иконки в колонке;
Команды отделяются друг от друга точкой с запятой, без пробелов, их имена являются регистрозависимыми. Не составляет труда добавить свои собственные команды.

Рисунок 1. Реквизит служебного документа.

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

Добавляем в родительский документ реквизит типа "Документ", и связываем его с только что созданным служебным документом. Через этот реквизит впоследствии мы сможем работать с дополнительной табличной частью.

Рисунок 2. Связь главного и служебного документов.

В форму "главного" документа добавляем таблицу значений, при помощи которой будем отображать дополнительную табличную часть, и три кнопки – стандартные "добавить-редактировать-удалить". При желании можно определить и другие операции со строками дополнительной табличной части – копировать строку, и т.д.

Рисунок 3. Будущая табличная часть.

Теперь нужно вставить необходимый код в глобальный модуль (см. конфигурацию-пример).

Для манипуляций с табличной частью в родительский документ необходимо добавить всго лишь три (!) строки:

Процедура ПриОткрытии()
   глХранилищеОткрыть(Контекст,ХранилищеПотери,ТаблицаПотерь);
КонецПроцедуры

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

При открытии происходит форматирование таблицы и заполнение её данными.

При закрытии происходит попытка удаления служебного документа (при необходимости). Второй параметр такой же, как и в первой функции:

Процедура ПриЗакрытии()
   глХранилищеУдалить(Контекст,ХранилищеПотери);
КонецПроцедуры

Ну и собственно сохранение табличной части. Параметры такие же как и в первой процедуре:

Процедура ПриЗаписи()
   глХранилищеСохранить(Контекст,ХранилищеПотери,ТаблицаПотерь);
КонецПроцедуры

Готово. Ну, за исключением ввода данных в таблицу. Для этого я позаимствовал из типовой конфигурации ИТРП универсальную процедуру ввода в таблицу значений (см. пример). Можно взять какую-нибудь другую универсальную процедуру ввода данных в ТЗ, или написать свою собственную – кому как больше нравится.

Вот и все… Восьмерка лишается одного из своих основных козырей? ;-)

Начать дискуссию

Общество

Врачи в новых регионах дополнительно получат до 2 млн рублей

Медицинский персонал получит компенсации за переезд на работу в новые регионы, на Дальний Восток, Крайний Север и в Арктическую зону.

В июне инфляция выросла до 8,59%

В 62 регионах России ускорился рост цен на большинство товаров и услуг.

💊 Соцвычет по НДФЛ можно получить на покупку любых лекарств

По расходам на покупку лекарств, назначенных лечащим врачом и приобретаемых за счет собственных средств, предусмотрен социальный налоговый вычет по НДФЛ.

Курсы повышения
квалификации

18
Официальное удостоверение с занесением в госреестр Рособрнадзора

В РФ прошел первый эксперимент по маркировке в открытом океане

Компания «Доброфлот» приняла участие в эксперименте по маркировке консервов в Тихом океане.

ФТС собрала за полгода больше 3 трлн рублей

Время типового досмотра грузового транспорта на границе сократится до 10 минут.

Мошенники добрались до домовых чатов: новые схемы обмана

МВД сообщило, что мошенники активно осваивают новые площадки. И одна из них — чаты жильцов многоквартирных домов.

Опытом делятся эксперты-практики, без воды
Бесплатно с 6-НДФЛ

Как в 1С заполнить 6-НДФЛ за 1 полугодие 2024 года: пошаговая инструкция

В 2024 году форма и порядок заполнения расчета 6-НДФЛ в очередной раз претерпели изменения. Рассказываем, как заполнить в 1С 6-НДФЛ за первое полугодие по правилам 2024 года, на что обратить внимание.

Как в 1С заполнить 6-НДФЛ за 1 полугодие 2024 года: пошаговая инструкция
Маркетинг

Как не копирайтеру придумать идеальный заголовок для публикации, будь это IT-статья или рекламный пост

Обычно над заголовком долго не думают: мол, кому надо, тот в любом случае прочитает. Очень зря, ведь если не получится заполучить внимание пользователя в первые пару секунд, ценность остального материала не будет иметь никакого значения.

Как работодателю учесть выплаты по договорам ГПХ

Договоры ГПХ часто оказываются под пристальным вниманием контролирующих органов. Чтобы не давать им повода для штрафов и доначислений, проверьте, все ли у вас правильно. Рассказываем про особенности бухгалтерского учета и налогообложения при расчетах по договорам ГПХ.

Как работодателю учесть выплаты по договорам ГПХ
Зарплата

После смены работы доход россиян увеличился на 20%

Те, кто решились поменять место работы в 2023 году, сейчас зарабатывают на 20% больше.

⚡️ Итоги дня: мигрантам ограничат места работы, в США создали автоматизированную домашнюю пивоварню, а хакеры украли криптовалюту на 235 млн долларов

Подготовили обзор главных событий дня — 18 июля 2024 года. Все самое интересное, что писали и обсуждали в сети, в одной подборке.

РСВ

После увольнения всех работников ИП сдает зарплатные отчеты до конца года

РСВ, ЕФС-1 и персонифицированные сведения о физлицах ИП сдают, только если они являются работодателями.

Вышла новая версия Методических рекомендаций по созданию первичной профсоюзной организации

Федерация независимых профсоюзов России (ФНПР) обновила методичку по созданию профсоюзной ячейки в организации.

Разбираемся в 1С: основные аспекты и подбор конфигурации для вашего бизнеса

Чтобы выбрать программное обеспечение, которое эффективно справится с поставленными целями — важно понимать особенности решений 1С и какие процессы в бизнесе требуют автоматизации.

Разбираемся в 1С: основные аспекты и подбор конфигурации для вашего бизнеса

Мошенники не могут украсть недвижимость на Госуслугах

Решения по сделкам с недвижимостью принимает Росреестр. Даже если к мошенникам попадет смартфон жертвы, они не смогут перерегистрировать право собственности.

Профсоюзы рекомендуют в жару уходить с работы домой

При плохом самочувствии из-за жары нужно сообщить об этом работодателю, остановить работу и покинуть рабочее место.

Миграционный учет

Как белорусу получить ВНЖ и гражданство РФ в 2024 году

Получение вида на жительство (ВНЖ) и гражданства Российской Федерации — важный вопрос для белорусов. В 2024 году процесс стал проще благодаря межгосударственным соглашениям, предоставляющим льготные условия.

Проверки

Минфин утвердил 8 индикаторов риска для контроля за рынком табака

С 20 июля 2024 года индикаторы риска закреплены приказом Министерства финансов от 11.06.2024 № 87н.

Автоматизация учета

Распознавание корпоративных документов: как не утонуть в море бумаг

Мы подсчитали, что ручной ввод данных из типовых форм занимает у сотрудников 6–7 часов в день. Автономная система Smart Document Engine на смартфоне справляется с подобной задачей буквально за минуты. В этой статье мы расскажем о самых эффективных бизнес-кейсах применения нашей мобильной OCR.

Распознавание корпоративных документов: как не утонуть в море бумаг

Интересные материалы

Росфинмониторинг начнет контролировать крупные операции с драгметаллами

Участникам нелегального оборота драгоценных камней и металлов установят запрет на списание денежных средств с банковских счетов.