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

Автоматическое заполнение табличной части Документа

Автор 애부개니 김, 27 окт 2019, 12:13

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

애부개니 김

Здравствуйте многоуважаемые форумчане!!!
Обращаюсь к Вам за помощью так я уже совсем запутался. Перебороздив просторы интернета, я у же не смогу понять без вашей помощи куда мне идти.
Проблема вот в чем, Есть справочники с названием "Материалы AC", "Материалы DC" и.т.д. к каждому справочнику я создал свой документ с названием "ПриходМатериаловAC" , "ПриходМатериаловDC" и.т.д.
Задача сосотоит в том что при открытии данных документов Табличная часть должна автоматически заполняться из Справочников, Например: При открытии документа "ПриходМатериаловAC" табличная часть данного документа заполняется автоматически. Что я и сделал. Ниже описан код
&НаСервере
Процедура ЗаполнитьТабЧасть()

Запрос = Новый Запрос;
Запрос.Текст ="ВЫБРАТЬ
               | Kappa.Наименование КАК Наименование,
               | Kappa.Ссылка КАК Ссылка
               |ИЗ
               | Справочник.Kappa КАК Kappa";
РезультатЗапроса = Запрос.Выполнить().Выбрать();
Пока  РезультатЗапроса.Следующий() Цикл
   НоваяСтрока = Объект.Материалы.Добавить();
   НоваяСтрока.НаименованиеМатериала = РезультатЗапроса.Наименование;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
// Вставить содержимое обработчика.
//МТ = Элементы.Материалы.ТекущиеДанные;
//Если МТ.Количество = Null Тогда
Объект.Материалы.Очистить();

//КонецЕсли;
ЗаполнитьТабЧасть();
КонецПроцедуры


Проблема состоит в том что если Пользователь захочет добавить в справочник новую запись и нужно данную запись в табличной части уже заполненного документа то удаляются все уже имеющие записи и пользователю придется вводить заново количество материалов. Не судите строго я новенький в написании конфигурации. Учусь самостоятельно мой преподователи - это книга Радченко и интернет.
Пожалуйста подскажите что я неправильно сделал И если можно напишите код или пошагово расскажите что можно сделать. Также ниже я выкладываю Вам мою сделанную конфигурацию
Заранее Благодарю Вас!!!!     

Raideres

Цитата: 애부개니 김 от 27 окт 2019, 12:13
Здравствуйте многоуважаемые форумчане!!!
Обращаюсь к Вам за помощью так я уже совсем запутался. Перебороздив просторы интернета, я у же не смогу понять без вашей помощи куда мне идти.
Проблема вот в чем, Есть справочники с названием "Материалы AC", "Материалы DC" и.т.д. к каждому справочнику я создал свой документ с названием "ПриходМатериаловAC" , "ПриходМатериаловDC" и.т.д.
Задача сосотоит в том что при открытии данных документов Табличная часть должна автоматически заполняться из Справочников, Например: При открытии документа "ПриходМатериаловAC" табличная часть данного документа заполняется автоматически. Что я и сделал. Ниже описан код
&НаСервере
Процедура ЗаполнитьТабЧасть()


Запрос = Новый Запрос;
Запрос.Текст ="ВЫБРАТЬ
               | Kappa.Наименование КАК Наименование,
               | Kappa.Ссылка КАК Ссылка
               |ИЗ
               | Справочник.Kappa КАК Kappa";
РезультатЗапроса = Запрос.Выполнить().Выбрать();
Пока  РезультатЗапроса.Следующий() Цикл
   НоваяСтрока = Объект.Материалы.Добавить();
   НоваяСтрока.НаименованиеМатериала = РезультатЗапроса.Наименование;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
// Вставить содержимое обработчика.
//МТ = Элементы.Материалы.ТекущиеДанные;
//Если МТ.Количество = Null Тогда
Объект.Материалы.Очистить();

//КонецЕсли;
ЗаполнитьТабЧасть();
КонецПроцедуры


Проблема состоит в том что если Пользователь захочет добавить в справочник новую запись и нужно данную запись в табличной части уже заполненного документа то удаляются все уже имеющие записи и пользователю придется вводить заново количество материалов. Не судите строго я новенький в написании конфигурации. Учусь самостоятельно мой преподователи - это книга Радченко и интернет.
Пожалуйста подскажите что я неправильно сделал И если можно напишите код или пошагово расскажите что можно сделать. Также ниже я выкладываю Вам мою сделанную конфигурацию
Заранее Благодарю Вас!!!!   
Мб стоит добавить проверку если документ не новый тогда мы ничего не делаем если новый то заполняем ТЗ
Вот например статья
https://programmist1s.ru/etonovyiy-v-upravlyaemyih-formah-1s-8-2/
https://its.1c.ru/db/metod8dev#content:3545:hdoc
Если Параметры.Ключ.Пустая() Тогда
   // Код
КонецЕсли;


Yotram

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

Теги:

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

Рейтинг@Mail.ru

Поиск