Главная и подчиненная таблицы в 1С - связывание, дополненное управляемыми формами для 8.2 и 8.3
Разработка - Механизмы платформы 1С
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Связывание главной и подчиненной таблиц для обычных форм описано в публикации infostart.ru/public/186522/. Для использования на управляемых формах код нужно изменить.
Ниже привожу работоспособный код для управляемого приложения:
&НаКлиенте
Процедура ГлавнаяТаблицаПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
Данные = Элементы.ГлавнаяТаблица.ТекущиеДанные;
Если НоваяСтрока Тогда
Данные.КлючСвязи = Новый УникальныйИдентификатор;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПодчиненнаяТаблицаПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
Данные = Элементы.ГлавнаяТаблица.ТекущиеДанные;
ТекДанные = Элементы.ПодчиненнаяТаблица.ТекущиеДанные;
Если НоваяСтрока Тогда
ТекДанные.КлючСвязи = Данные.КлючСвязи;
КонецЕсли;
СтрОтбора = Новый ФиксированнаяСтруктура("КлючСвязи", Данные.КлючСвязи);
Элементы.ПодчиненнаяТаблица.ОтборСтрок = СтрОтбора;
КонецПроцедуры
&НаКлиенте
Процедура ГлавнаяТаблицаПередУдалением(Элемент, Отказ)
Данные = Элементы.ГлавнаяТаблица.ТекущиеДанные;
Отбор = Новый Структура("КлючСвязи",Данные.КлючСвязи);
Масс = Объект.ПодчиненнаяТаблица.НайтиСтроки(Отбор);
Для каждого Строка из Масс Цикл
Объект.СкидкиНаценки.Удалить(Строка);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ГлавнаяТаблицаПриАктивизацииСтроки(Элемент)
Данные = Элементы.ГлавнаяТаблица.ТекущиеДанные;
Если Данные = Неопределено Тогда
Возврат;
КонецЕсли;
СтрОтбора = Новый ФиксированнаяСтруктура("КлючСвязи", Данные.КлючСвязи);
Элементы.ПодчиненнаяТаблица.ОтборСтрок = СтрОтбора;
КонецПроцедуры
чтобы не выдавало ошибки при добавлении строки в подчиненную таблицу при пустой основной таблице надо добавить :
&НаКлиенте
Процедура ПодчиненнаяТаблицаПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа)
Данные = Элементы.ГлавнаяТаблица.ТекущиеДанные;
Если Данные = Неопределено Тогда
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
В файле пример для Управляемого приложения. Работоспособность обработки тестировалась на версии платформы 8.3.4+. Будет работать на всех конфигурациях управляемых форм.
Готовое решение
ККТ-ОНЛАЙН 54-ФЗ: Обработка для работы онлайн касс АТОЛ, ШТРИХ, VIKI PRINT и т.д. МАРКИРОВКА (Разрешит. режим) + ЭКВАЙРИНГ + БЕСПЛАТНЫЙ ДЕМО
Универсальная обработка для фискальных регистраторов! Подключайте любые ККТ, включая Веб сервер АТОЛ, без обновления 1С и работайте с несколькими кассами одновременно. Тестовый доступ — бесплатно!
Вступайте в нашу телеграмм-группу Инфостарт