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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Путин: через 6 лет смертность от ДТП должна снизиться в 1,5 раза

В рамках достижения национальной цели «Комфортная и безопасная среда для жизни» президент поставил задачу снизить смертность в результате дорожно-транспортных происшествий.

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

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

Неприятие потери, или почему ты не можешь продать Сегежу с Газпромом

Ситуация: ты покупаешь акции компании, которая внезапно становится токсичной и месяц за месяцем нащупывает новое дно. Классический пример — ВТБ. Но это было всегда, а вот более свежие примеры — Сегежа или народное достояние. Газовая компания вообще держится в топ-3 по популярности среди акций, а её ближайшие перспективы не менее туманны, чем Альбион.

Неприятие потери, или почему ты не можешь продать Сегежу с Газпромом

Изменился состав документов для получения налогового вычета за обучение

По расходам на образование с 1 января 2024 года в налоговую нужно принести справку об оплате услуг. Раньше для получения социального налогового вычета по НДФЛ были нужны платежные документы и договор.

Лучшие спикеры, новый каждый день

📕 💪 Акция «Не МАЙся — заниМАЙся»! Самые нужные курсы по 3 690 рублей!

Успейте купить топовые курсы «Клерка» за 3 690 рублей до 13 мая! Для акции мы выбрали нужные для бухгалтера онлайн-курсы: они помогут освоить востребованные навыки, актуализировать знания к лету, освоить новую нишу, чтобы вырасти в карьере и увеличить доход.

Иллюстрация: Вера Ревина/Клерк.ру
1

🔥 Акция «Не МАЙся — заниМАЙся!»: топовые онлайн-курсы по 3 690 рублей

До 13 мая вы можете купить лучшие онлайн-курсы «Клерка» по учету на маркетплейсах, финансовому моделированию, ВЭД, зарплате и бухгалтерии с нуля за 3 690 рублей!

Уважаемые коллеги! Поздравляем вас с Днем Победы!

Коллектив «Клерка» поздравляет всех с Днем Великой Победы!

Уважаемые коллеги! Поздравляем вас с Днем Победы!
3
Опытом делятся эксперты-практики, без воды

Губернаторам могут разрешить продлевать майские праздники

Госдума начинает рассматривать законопроект, который может разрешить региональным властям давать людям больше выходных в майские праздники. Но только если большинство жителей региона поддержит перенос выходных с новогодних праздников.

8% в валюте на удобрениях. Свежие облигации: Акрон CNY на размещении

Нет ничего постыдного в том, чтобы инвестировать в навоз, даже если этот навоз берёт долги в юанях под 8%. Сегодня у нас в гостях Акрон — очередной эмитент, который позволяет инвесторам заработать в валюте. Крайне интересный выпуск, достойный находиться в портфелях всех любителей валюты.

8% в валюте на удобрениях. Свежие облигации: Акрон CNY на размещении

Проблема навигации на «Клерке». 20 лет мы искали решение и вот

Теперь навигационное меню можно свернуть и оно запомнит свое состояние.

Проблема навигации на «Клерке». 20 лет мы искали решение и вот

Сравнение сервисов для подачи отчетности. Обзор для бухгалтера

Статья представляет сравнительный обзор трех сервисов для подачи отчетности: 1С-Отчетность, СБИС и Контур Экстерн. Описаны их ключевые функции и ценовые предложения.

1

Правильно подобрали переводчиков и локализовали сайт: как за 2 месяца мы помогли торговой компании открыть филиалы в ОАЭ, Турции и Казахстане

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

Правильно подобрали переводчиков и локализовали сайт: как за 2 месяца мы помогли торговой компании открыть филиалы в ОАЭ, Турции и Казахстане

Грядет очередной эксперимент по маркировке

C 1 сентября 2024 по 31 августа 2025 года Минпромторг планирует проведение эксперимента по маркировке отдельных видов смазочных материалов и специальных автомобильных жидкостей.

1
Миникурсы, текстовые и видеоинструкции для бухгалтеров

К 2036 году у 99% населения России будет интернет

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

Зачем обращаются в Росреестр чаще всего: официальные данные

Росреестр отчитался, с какими вопросами чаще всего обращались заявители в 2023 году.

Ведение бизнеса

Выручка малых технологических компаний должны вырасти в 7 раз

Для достижения национальной цели «Технологическое лидерство» президент поставил целевой показатель по росту выручки малых технологических компаний (МТК).

Названы приоритетные направления для развития новых технологий

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

Все что вам нужно знать о штрафах за работу с самозанятыми. Реальный опыт юриста

Разберу на примере реальных  судебных дел, как предприниматели «попадают» на штрафы за работу с самозанятыми и теряют миллионы. Отвечу на 3 самых популярных вопроса и развею мифы.

1
Проверки ФАС

6 основных инструментов ФАС по борьбе с недобросовестной конкуренцией

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

Бесплатно с Увольнение

Увольнение с отработкой: что такое, как правильно оформить, образец заявления

Увольнение с отработкой — это не нормативное, а обиходное выражение. Корректнее говорить об увольнении по собственному желанию или расторжении трудового договора по инициативе работника. Но важнее не термины, а правильное оформление.

Иллюстрация: Вера Ревина/Клерк.ру

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

Обзоры новостей

⚡️ Итоги дня: Microsoft создала нейросеть для спецслужб, Ozon сгенерирует фото одежды на моделях, а в Москве продают мангал за 350 тысяч

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