helpf.pro
Регистрация

Как заполнить табличную часть формы программно?

Нужно по кнопке Заполнить  - сформировать данные для заполнения табличных частей и заполнить их.

Форма имеет вид:

Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ, код ее команды:

Код 1C v 8.2 УП
 // Код заполнения ТЧ
&НаСервере
Процедура ЗаполнитьДокументНаСервере()
	ДокОбъект = РеквизитФормыВЗначение("Объект");
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ РАЗЛИЧНЫЕ
		|	ЗаказНаПроизводствоПродукция.Ссылка КАК ЗаказНаПроизводство,
		|	СпецификацииОперации.Операция,
		|	СпецификацииОперации.W1C_КоличествоОпераций,
		|	СпецификацииОперации.W1C_СтоимостьОднойОперации
		|ПОМЕСТИТЬ втЗаказОперацияСумма
		|ИЗ
		|	Документ.ЗаказНаПроизводство.Продукция КАК ЗаказНаПроизводствоПродукция
		|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Спецификации.Операции КАК СпецификацииОперации
		|		ПО ЗаказНаПроизводствоПродукция.Спецификация = СпецификацииОперации.Ссылка
		|ГДЕ
		|	ЗаказНаПроизводствоПродукция.Ссылка В
		|			(ВЫБРАТЬ РАЗЛИЧНЫЕ
		|				W1C_ОтчетПоВыработкеНачисления.ЗаказПроизводство
		|			ИЗ
		|				Документ.W1C_ОтчетПоВыработке.Начисления КАК W1C_ОтчетПоВыработкеНачисления
		|			ГДЕ
		|				W1C_ОтчетПоВыработкеНачисления.Ссылка.Дата МЕЖДУ &ДатаН И &ДатаК)
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|	W1C_ОтчетПоВыработкеНачисления.Ссылка.Организация,
		|	W1C_ОтчетПоВыработкеНачисления.Ссылка.Сотрудник,
		|	W1C_ОтчетПоВыработкеНачисления.ЗаказПроизводство,
		|	W1C_ОтчетПоВыработкеНачисления.Операция,
		|	W1C_ОтчетПоВыработкеНачисления.КоличествоПродукции КАК Количество,
		|	втЗаказОперацияСумма.W1C_СтоимостьОднойОперации КАК Цена,
		|	W1C_ОтчетПоВыработкеНачисления.Ссылка КАК ОтчетПоВыработке,
		|	втЗаказОперацияСумма.W1C_СтоимостьОднойОперации * W1C_ОтчетПоВыработкеНачисления.КоличествоПродукции КАК Сумма
		|ИЗ
		|	Документ.W1C_ОтчетПоВыработке.Начисления КАК W1C_ОтчетПоВыработкеНачисления
		|		ЛЕВОЕ СОЕДИНЕНИЕ втЗаказОперацияСумма КАК втЗаказОперацияСумма
		|		ПО W1C_ОтчетПоВыработкеНачисления.ЗаказПроизводство = втЗаказОперацияСумма.ЗаказНаПроизводство
		|			И W1C_ОтчетПоВыработкеНачисления.Операция = втЗаказОперацияСумма.Операция
		|ГДЕ
		|	W1C_ОтчетПоВыработкеНачисления.Ссылка.Дата МЕЖДУ &ДатаН И &ДатаК
		|	И W1C_ОтчетПоВыработкеНачисления.Ссылка.Организация = &Организация";


	Запрос.УстановитьПараметр("ДатаК", КонецМесяца(ДокОбъект.ПериодРегистрации));
	Запрос.УстановитьПараметр("ДатаН", НачалоМесяца(ДокОбъект.ПериодРегистрации));
	Запрос.УстановитьПараметр("Организация", ДокОбъект.Организация);


	РезультатЗапроса = Запрос.Выполнить();
	ДокОбъект.Рассчет.Загрузить(Запрос.Выполнить().Выгрузить());
	ОбновитьВыплату(ДокОбъект); //заполним данными вторую ТЧ
	ЗначениеВРеквизитФормы(ДокОбъект, "Объект");

КонецПроцедуры

&НаСервере
Процедура ОбновитьВыплату(ДокОбъект)
врТЗ = ДокОбъект.Рассчет.Выгрузить();
врТЗ.свернуть("Сотрудник","Сумма");
ДокОбъект.Начисления.Загрузить(врТЗ);
КонецПроцедуры   

Второй вариант заполнения: Имеем ТЧ на форме, которую необходимо программно заполнить

и код в модуле документа:

Код 1C v 8.2 УП
 &НаСервере
 Процедура НайтиТопливоф()
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   СУММА(ПродажаТоплива.Номер) КАК Номер,
        |   ПродажаТоплива.ТипТоплива,
        |   СУММА(ПродажаТоплива.Количество) КАК Количество,
        |   СУММА(ПродажаТоплива.СуммаСНДС) КАК СуммаСНДС
        |ИЗ
        |   Документ.ПродажаТоплива КАК ПродажаТоплива
        |ГДЕ
        |   ПродажаТоплива.Цена <= &Цена
        |
        |СГРУППИРОВАТЬ ПО
        |   ПродажаТоплива.ТипТоплива";
 
    Запрос.УстановитьПараметр("Цена", Объект.Цена);
 
    Результат = Запрос.Выполнить();
     ВыборкаДетальныеЗаписи = Результат.Выбрать();
    Объект.ТЧ.Очистить();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл  
 	 НовСтр = Объект.ТЧ.Добавить();
         ЗаполнитьЗначенияСвойств(НовСтр, ВыборкаДетальныеЗаписи); //при условии что имена полей ТЧ и выборки совпадают
    КонецЦикла;
КонецПроцедуры
   
Разместил:   Версии: | 8.2 УП | 8.3 |  Дата:   Прочитано: 149890
 +8 
Распечатать
Возможно, вас также заинтересует
1С Предприятие что это? 13
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое
PostgreSQL: установка, настройка, обслуживание 12
PostgreSQL напрямую "из коробки" применяться для использования с 1С Предприятем не может. Необходима именно адаптированная версия от 1С, превращающая PostgreSQL в блокировочник, причем нужно понимать, что блокировки будут накладываться на всю таблиц
аванс, нет кнопки расчитать 1
подскажите пожалуйста, стоит 1с 8.3 бухгалтерский учет для Украины2.0 на одной платформе 2 предприятия. В одном предприятии при офрмлении документа "ведомости выплаты через банк" Аванс (без предварительного расчета) есть две кнопки "заполнить" и "р
Автоматическая установка ширины колонки табличного документа. 0
Процедура, которая " примерно" делает автоширину колонок (навроде, как если бы выделить все колонки и дважды щелкнуть мышкой по границе заголовка колонки). Привожу текст, работает неахти, но лучше чем ничего: Процедура РасчетШириныКолонок(Табличный
Автоматическое резервное копирование 1С:Предприятия в облако с помощью ПО Effector Saver 4
Всем известно, для большей гарантии восстановления важных данных, необходимо копировать архивы в несколько мест хранения. Отдельный диск может помочь в случае порчи основного, но в случае если устройство будет потеряно или украдено, он будет так же
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
Загрузка... Дождитесь завершения!