Дополнительные реквизиты табличных частей документов для большинства конфигураций на БСП через расширение без изменения метаданных
Разработка - Работа с интерфейсом
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Вариант доработки "Значение в значение": в поле Значение будет записано выбранное значение доп.реквизита табличной части, в "ТекстоваяСтрока" будет записан идентификатор для определения строки.
За основу взята и значительно переделана Доработка1 Дополнительные реквизиты табличной части документов без изменения хранения данных с вариантом сохранения "Значение В Текстовую строку", где идентификатор строки записывался в поле Значение, а сам доп.реквизит хранился в поле Текстовая строка в виде ссылки для непримитивных типов.
Также использована идея настройки принадлежности доп.реквизита через поле "Для разработчика" и хранения идентификатора в поле Текстовая строка из Доработка2 Дополнительные реквизиты табличных частей [расширение] УТ 11. Обработка была скачана с целью переделать для ЗУП, но получилось взять только идею.
Отличия от Дополнительные реквизиты табличных частей [расширение] УТ 11, предназначенной только для УТ 11, и использующей процедуры и функции, отсутствующие в других конфигурациях на БСП:
- Использованы методы позволяющие запускать в большинстве конфигураций используется стандартный механизм БСП.
- Заимствованы только общие модули БСП - "УправлениеСвойствами" и "УправлениеДоступом";
- Все переопределенные методы имеют аннотацию "После", т.е. не затрагивают типовой механизм.
Отличия от Дополнительные реквизиты табличной части документов без изменения хранения данных:
1. В реквизит "Значение" будет записано Значение дополнительного реквизита, а идентификатор/номер строки в реквизит "ТекстоваяСтрока".
Преимущества Варианта доработки "Значение В Значение":
- легко вытащить доп.реквизит запросом, можно включать в отчеты на СКД, в отличие от варианта "Значение В Текстовую строку" где можно только в коде получая ссылку по ГУИД. Пример связи в запросе для выбора данных из ДРТЧ (см.ниже)
- через любой редактор объекта видно доп.реквизит а не его ГУИД.
Недостатки Варианта доработки "Значение В Значение":
- в качестве доп.реквизита можно использовать только ограниченный список типов объектов заданный в ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения. Что легко исправляется в расширении добалением нужного типа объекта в ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения
2. Убран добавленный Регистр сведений ДРТЧ_Настройки, все настройки прописываются в настройках доп.реквизита(см.ниже). Убран из заимствованных ПВХ и др.заимствованные объекты.
Преимущества:
- расширение не меняет метаданные, может установить немонопольно;
- вся настройка выполнятся в одном месте, в настройках типового доп.реквизита, не нужно заходить в другие места (регистры сведений).
3. Доп.реквизит, предназначенный для табличной части, по умолчанию не отображается в разделе типовых доп.реквизитов для всего документа. В исходной версии доработки, чтобы реквизит отображался только как колонка табличной части, требовалось в настройках видимости добавлять условия вызывающие ложь.
4. Для ЗУП, ЗГУ и КА добавлена идентификация по реквизитам "ИдентификаторСтрокиСотрудника" и "ИдентификаторСтрокиВидаРасчета" вместо Номера строки(см.ниже).
5. Исключено обращение к функция "ОбрабатыватьОповещения" в модуле "УправлениеСвойствамиКлиент" через аннотацию "Вместо". Заменено на &После("ПослеЗаписиНаСервере")
Требования и ограничения:
1. В документе должна быть табличная часть "ДополнительныеРеквизиты"
2. Для документа должен быть определен ДопРеквизит.
НАСТРОЙКИ ДОП.РЕКВИЗИТА:
!!! Имя в поле "Для разработчика" пишем в формате "ДРТЧ_ИмяТЧ_РеквизитИмя" (например "ДРТЧ_Сотрудники_СовмещаемыйСотрудник").
!!! Ограничение - доп.атрибут табличной части не может быть любой, КРОМЕ строка неограниченной длины, т.к. для идентификации строки используется реквизит "ТекстоваяСтрока" (именно поэтому не получиться хранить строки неограниченной длины)
3. В реквизит "Значение" будет записано Значение дополнительного реквизита.
4. В реквизит "ТекстоваяСтрока" будет записан один из следующих реквизитов при наличии в порядке приоритета:
"ИдентификаторСтроки" (Тип: Строка 36) (Если в ТЧ есть реквизит "ИдентификаторСтроки" то будет использован он)
"ИдентификаторСтрокиСотрудника" (Тип: Число) (ИначеЕсли в ТЧ есть "ИдентификаторСтрокиСотрудника" то будет использован он)
"ИдентификаторСтрокиВидаРасчета" (Тип: Число) (ИначеЕсли в ТЧ есть "ИдентификаторСтрокиВидаРасчета" то будет использован он)
"НомерСтроки" (Иначе будет использован Номер строки табличной части).
!!! В случае, если используется Номер строки ТЧ в качестве идентификатора, возможны ошибки при изменении табличной части объекта программно или с помощью обработок. Например, при удалении одной из непоследних строк или изменении порядка в основной табличной части, ссылка на Доп.реквизит станет некорректна. Это относится в т.ч. и доработкам, которые указаны выше. Поэтому и было добавлено определение по "ИдентификаторСтрокиСотрудника" и "ИдентификаторСтрокиВидаРасчета".
Примечание: в БГУ 2.0 данная доработка не требуется, т.к. подобный механизм реализован в типовом функционале Гибкая настройка и расширенные сервисные возможности | 1С:Бухгалтерия государственного учреждения 8
Пример запроса для выбора данных из ДРТЧ (доп.реквизитов табличной части):
"ВЫБРАТЬ
| ДокСотрудники.Ссылка КАК Ссылка,
| ДокСотрудники.Сотрудник КАК Сотрудник,
| ДокСотрудники.ДатаНазначения КАК ДатаНазначения,
| ДокСотрудники.ДатаОкончания КАК ДатаОкончания,
| ДокСотрудники.ИдентификаторСтрокиСотрудника КАК ИдентификаторСтрокиСотрудника,
| ЕСТЬNULL(ДопРеквСовмДолжПоШР.Значение, ""______________"") КАК СовмДолжПоШР,
| ЕСТЬNULL(ДопРеквСовмКоличСт.Значение, ""____"") КАК СовмещаемоеКоличествоСтавок
|ПОМЕСТИТЬ ВТДанныеДокументов
|ИЗ
| Документ.НазначениеПлановогоНачисления.Сотрудники КАК ДокСотрудники
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.НазначениеПлановогоНачисления.ДополнительныеРеквизиты КАК ДопРеквСовмДолжПоШР
| ПО ДокСотрудники.Ссылка = ДопРеквСовмДолжПоШР.Ссылка
| И (ДопРеквСовмДолжПоШР.Свойство.Имя = ""ДРТЧ_Сотрудники_СовмещаемаяДолжностьПоШР"")
| И (ЕСТЬNULL(СТРОКА(ДокСотрудники.ИдентификаторСтрокиСотрудника), """") = (ВЫРАЗИТЬ(ДопРеквСовмДолжПоШР.ТекстоваяСтрока КАК СТРОКА(36))))
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.НазначениеПлановогоНачисления.ДополнительныеРеквизиты КАК ДопРеквСовмКоличСт
| ПО ДокСотрудники.Ссылка = ДопРеквСовмКоличСт.Ссылка
| И (ДопРеквСовмКоличСт.Свойство.Имя = ""ДРТЧ_Сотрудники_СовмещаемоеКоличествоСтавок"")
| И (ЕСТЬNULL(СТРОКА(ДокСотрудники.ИдентификаторСтрокиСотрудника), """") = (ВЫРАЗИТЬ(ДопРеквСовмКоличСт.ТекстоваяСтрока КАК СТРОКА(36))))"
Установка: подключается через Расширения. Галочку "Безопасный режим" необходимо отключить.
Использование доп.реквизитов должно быть включено:
Администрирование - Общие настройки - Свойства - Установить признак Свойства.
Проверено на следующих конфигурациях и релизах:
- Зарплата и кадры государственного учреждения, редакция 3, релизы 3.1.38.92
Вступайте в нашу телеграмм-группу Инфостарт