Есть два справочника Штатное и Подразделения. В справочнике Штатное есть автоматически генерируемое поле Наименование. Как программно сделать так чтобы в поле Наименование справочника Штатное выводились списком значений из поля Наименование справочника Подразделения? Я только начал изучать программирование в 1С. Вариант с добавлением в код модуля списка выбора я уже реализовал. Но сами понимаете что это не то. Посмотрите код. Может у кого то решение есть лучше.
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Элементы.Наименование.РежимВыбораИзСписка = Истина;
Элементы.Наименование.СписокВыбора.Добавить("Администрация");
Элементы.Наименование.СписокВыбора.Добавить("Бухгалтерия");
Элементы.Наименование.СписокВыбора.Добавить("Отдел ИТ");
КонецПроцедуры
&НаКлиенте
Процедура ТЧШтатноеЕдиницыПриИзменении(Элемент)
РассчитатьСуммуТЧШтатное();
КонецПроцедуры
&НаКлиенте
Процедура ТЧШтатноеОкладПриИзменении(Элемент)
РассчитатьСуммуТЧШтатное();
КонецПроцедуры
&НаКлиенте
Процедура ТЧШтатноеСуммаПриИзменении(Элемент)
Стр = Элементы.ТЧШтатное.ТекущиеДанные;
Если Стр.Единицы=0 И Стр.Оклад=0 Тогда
ИначеЕсли Стр.Единицы=0 Тогда
Стр.Единицы=Стр.Сумма / Стр.Оклад;
ИначеЕсли Стр.Оклад=0 Тогда
Стр.Оклад=Стр.Сумма / Стр.Единицы;
Иначе
Стр.Оклад=Стр.Сумма / Стр.Единицы;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РассчитатьСуммуТЧШтатное()
Стр = Элементы.ТЧШтатное.ТекущиеДанные;
Стр.Сумма = Стр.Единицы * Стр.Оклад;
КонецПроцедуры
&НаКлиенте
Процедура ЕдиницыИтогПриИзменении(Элемент)
Стр = Элементы.Штатное.ТекущиеДанные;
Стр.ЕдиницыИтог = Стр.Единицы + 1;
КонецПроцедуры
&НаКлиенте
Процедура СуммаИтогПриИзменении(Элемент)
Стр = Элементы.Штатное.ТекущиеДанные;
Стр.СуммаИтог = Стр.Сумма + 1;
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
Объект.ЕдиницыИтог = Объект.ТЧШтатное.Итог("Единицы");
Объект.СуммаИтог = Объект.ТЧШтатное.Итог("Сумма");
КонецПроцедуры
Часто при разработке необходимо вывести данные в печатную форму, ниже шаблон вывода в табличный документ
Пример процедуры Вывода на печать
Код 1C v 8.х Процедура Печать(ТабДок) Экспорт
//создание нового табличного документа
ТабДок = Новый ТабличныйДокумент;
//получение макета для печати расходной накладной
Макет = Документы.РасходнаяНакладная.ПолучитьМакет("Основной");
//получим область "Заголовок" как новый табличный документ (!)
Область = Макет.ПолучитьОбласть("Заголовок");
//укажем параметры области
Область.Параметры.НомерДокумента = Номер;
Область.Параметры.От = Дата;
Область.Параметры.Кому = Контрагент;
//выведем заполненную область "Заголовок" в табличный документ
ТабДок.Вывести(Область);
//выведем область "Шапка" в табличный документ
ТабДок.Вывести(Макет.ПолучитьОбласть("Шапка"));
//получение области "Строка"
//обратите внимание, что это можно сделать до цикла по строкам
Область = Макет.ПолучитьОбласть("Строка");
// вывод строк документа в печатную форму
Для Каждого СтрСостава Из Состав Цикл
//заполнение параметров области из строки табличной части
Область.Параметры.Заполнить(СтрСостава);
// вывод сформированной области в табличный документ
ТабДок.Вывести(Область);
КонецЦикла;
// вывод области "Подвал"
Область = Макет.ПолучитьОбласть("Подвал");
Область.Параметры.ИтогоКоличество = Состав.Итог("Количество");
Область.Параметры.ИтогоСумма = Состав.Итог("Сумма");
ТабДок.Вывести(Область);
//установим параметры отображения табличного документа
ТабДок.ТолькоПросмотр = Истина;
ТабДок.ОтображатьЗаголовки = Истина;
ТабДок.ОтображатьСетку = Ложь;
//покажем табличный документ на экране
ТабДок.Показать();
КонецПроцедуры<br>
Пример функции формирующей печатную форму Счета по Ссылке на документ:
Код 1C v 8.х Функция СформироватьПечатнуюФорму(СсылкаНаДокумент, ОбъектыПечати)
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СчетНаОплату";
МакетОбработки = ПолучитьМакет("Счет");
//заполняем шапку
ОбластьШапка = МакетОбработки.ПолучитьОбласть("Шапка");
ОбластьШапка.Параметры.НомерДокумента = СсылкаНаДокумент.Номер;
ОбластьШапка.Параметры.ДатаДокумента = СсылкаНаДокумент.Дата;
ОбластьШапка.Параметры.НазваниеОрганизации = СсылкаНаДокумент.Организация.Наименование;
//выводим шапку в табличный документ
ТабличныйДокумент.Вывести(ОбластьШапка);
//заполняем строки ТЧ
ОбластьСтроки = МакетОбработки.ПолучитьОбласть("СтрокаТЧ");
// Перебор строк документа
Для Каждого ТекущаяСтрока Из СсылкаНаДокумент.Товары Цикл
ЗаполнитьЗначенияСвойств(ОбластьСтроки.Параметры, ТекущаяСтрока);
ТабличныйДокумент.Вывести(ОбластьСтроки);
КонецЦикла;
//заполняем подвал
ОбластьПодвал = МакетОбработки.ПолучитьОбласть("Подвал");
ОбластьПодвал.Параметры.КоличествоИтог = СсылкаНаДокумент.Товары.Итог("Количество");
ОбластьПодвал.Параметры.СуммаИтог = СсылкаНаДокумент.Товары.Итог("Сумма");
ОбластьПодвал.Параметры.ИмяОтветственного = СсылкаНаДокумент.Менеджер.Наименование;
//выводим подвал в табличный документ
ТабличныйДокумент.Вывести(ОбластьПодвал);
// Установим настройки выводимого документа
ТабличныйДокумент.АвтоМасштаб = Истина;
Возврат ТабличныйДокумент;
КонецФункции