Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 мая 2024, 22:36

Автоматическое добавление списка

Автор NAstyaDav, 02 июн 2018, 20:04

0 Пользователей и 1 гость просматривают эту тему.

NAstyaDav

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

AIFrame

Получи запросом, что тебе надо.
Список = Новый СписокЗначений;
Список.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Имя"));

Ну а дальше по событию выбора или выпадающего списка устанавливаешь для поля этот список значений.
Историю подбора в поле только выключи, чтобы там где не надо не вылазили варианты, которых там быть не должно.
Добавлено: 03 июн 2018, 01:57


Другой момент.
Вот ты хочешь задать набор анализов для медкнижек.
Вариант 1 - справочник анализов и при создании нового заполнять им ТЧ.
Вариант 2 - тупо в коде наколбасить список.
Вариант 3 - сделать справочник медкнижек иерархическим с глубиной = 2. Добавить для группы ТЧ анализы_по_умолчанию, которыми и будут заполнятся элементы при создании нового. Т.е. ты открываешь редактирование группы, вносишь свои анализы, потом открываешь элемент внутри этой группы и у него ТЧ анализов заполняется по ТЧ в Родителе. Это удобно, когда тебе надо поделить объекты внутри справочника по разным наборам доп.свойств. Сам так делал, когда справочник оборудования себе пилил.

NAstyaDav

Цитата: AIFrame от 03 июн 2018, 01:49
Получи запросом, что тебе надо.
Список = Новый СписокЗначений;
Список.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Имя"));

Ну а дальше по событию выбора или выпадающего списка устанавливаешь для поля этот список значений.
Историю подбора в поле только выключи, чтобы там где не надо не вылазили варианты, которых там быть не должно.
Добавлено: 03 июн 2018, 01:57


Другой момент.
Вот ты хочешь задать набор анализов для медкнижек.
Вариант 1 - справочник анализов и при создании нового заполнять им ТЧ.
Вариант 2 - тупо в коде наколбасить список.
Вариант 3 - сделать справочник медкнижек иерархическим с глубиной = 2. Добавить для группы ТЧ анализы_по_умолчанию, которыми и будут заполнятся элементы при создании нового. Т.е. ты открываешь редактирование группы, вносишь свои анализы, потом открываешь элемент внутри этой группы и у него ТЧ анализов заполняется по ТЧ в Родителе. Это удобно, когда тебе надо поделить объекты внутри справочника по разным наборам доп.свойств. Сам так делал, когда справочник оборудования себе пилил.
Мне бы кодом наколбасить надобно, где и как это можно сделать? +в ТЧ виды анализов добавлен справочник виды анализов и в нем уже создается анализ

AIFrame

Ну раз справочник уже есть, то по событию создания на сервере (в модуле формы) проверяешь свои анализы как ТЧАнализы.Количество() = 0 - это будет значить, что анализов в тч нет.
Соотв., если анализы пустые, ты их наполняешь из справочника ВидыАнализов.
Например:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если ТЧАнализы.Количество() = 0  // ТЧ пустая
     ИЛИ Параметры.Ключ.Пустая() Тогда // ИЛИ это новый
        Отбор = Новый Структура;
        Отбор.Вставить("ПометкаУдаления", Ложь); // Нам не нужны помеченные на удаление
        Выборка = Справочники.ВидыАнализов.Выбрать(,,Отбор);
        Пока Выборка.Следующий() Цикл
            Если ТЧАнализы.Найти(Выборка.Ссылка) = неопределено Тогда // Такой строки в ТЧ_Анализы нет. Добавляем.
                НоваяСтрока = ТЧАнализы.Добавить();
                НоваяСтрока.ВидыАнализов = Выборка.Ссылка;
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;
    ТЧАнализы.Сортировать("ВидыАнализов Возр");
КонецПроцедуры

Под свои реквизиты переделай и все.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск