Перезаполнение ТЧ документа
Помогите пожалуйста,не могу разделить получение формы и и заполнение ее тч. Нужно перезаполнить значения тч формы. сейчас остается только последняя строка тч. Я понимаю почему,но не могу исправить..
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ПараметрыФормы = Новый Структура("Ключ",ВыборкаДетальныеЗаписи.Ссылка);
Форма = ПолучитьФорму("Документ.ПеремещениеТМЦ.Форма.ФормаДокумента",ПараметрыФормы );
Форма.ТЧ.Очистить();
НовСтр = Форма.ТЧ.Добавить();
НовСтр.ВариантИсполненияГП=ВыборкаДетальныеЗаписи.ВариантИсполнения;
НовСтр.НоменклатураГП=ВыборкаДетальныеЗаписи.Номенклатура ;
НовСтр.ВидПотребности=Перечисления.ВидыПотребностейВТМЦ.Внешняя;
НовСтр.ЕдИзм=ВыборкаДетальныеЗаписи.ЕдИзм;
НовСтр.Кол=ВыборкаДетальныеЗаписи.Кол;
НовСтр.ПодЗаказ=ВыборкаДетальныеЗаписи.ПодЗаказ;
НовСтр.Коэффициент=ВыборкаДетальныеЗаписи.Коэффициент;
НовСтр.ВариантИсполнения=ВыборкаДетальныеЗаписи.ВариантИсполнения;
НовСтр.Номенклатура=ВыборкаДетальныеЗаписи.Номенклатура ; НовСтр.ЗаказНаПеремещениеТМЦ=ВыборкаДетальныеЗаписи.ЗаказНаПеремещениеТМЦ;
НовСтр.Резервировать=Истина;
НовСтр.ПС_ВыпускПродукции=ВыборкаДетальныеЗаписи.ПС_ВыпускПродукции;
Форма.Записать();
КонецЦикла;
Сообщить(Строка(ВыборкаДетальныеЗаписи.Ссылка));
КонецЦикла;
ПоказатьПо теме из базы знаний
Найденные решения
(19)в вашем случае - еще раз не нужна в запросе табличная часть, получайте старые реквизиты так, они же все доступны для чтения
НовСтр.ВариантИсполненияГП=НовСтр.ВариантИсполнения;
НовСтр.НоменклатураГП=НовСтр.Номенклатура ;
НовСтр.ВидПотребности=НовСтр.ВидыПотребностейВТМЦ.Внешняя;
НовСтр.ВариантИсполненияГП=НовСтр.ВариантИсполнения;
НовСтр.НоменклатураГП=НовСтр.Номенклатура ;
НовСтр.ВидПотребности=НовСтр.ВидыПотребностейВТМЦ.Внешняя;
Остальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(2)в УФ иногда очень удобно делать через форму, потому-что, заполнив, например Номенклатура, в форме можно вызвать процедуру ПриИзмененииНоменклатура и она зама заполнит сопутствующие поля, как в интерактивном режиме а если через документ, то придется все заполнять руками
(7)Значение не является значением объектного типа (ПолучитьОбъект)
об = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
об = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
об = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
об.ТЧ.Очистить();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
НовСтр = об.ТЧ.Добавить();
НовСтр.ВариантИсполненияГП=ВыборкаДетальныеЗаписи.ВариантИсполнения;
НовСтр.НоменклатураГП=ВыборкаДетальныеЗаписи.Номенклатура ;
НовСтр.ВидПотребности=Перечисления.ВидыПотребностейВТМЦ.Внешняя;
НовСтр.ЕдИзм=ВыборкаДетальныеЗаписи.ЕдИзм;
НовСтр.Кол=ВыборкаДетальныеЗаписи.Кол;
НовСтр.ПодЗаказ=ВыборкаДетальныеЗаписи.ПодЗаказ;
НовСтр.Коэффициент=ВыборкаДетальныеЗаписи.Коэффициент;
НовСтр.ВариантИсполнения=ВыборкаДетальныеЗаписи.ВариантИсполнения;
НовСтр.Номенклатура=ВыборкаДетальныеЗаписи.Номенклатура ;
НовСтр.ЗаказНаПеремещениеТМЦ=ВыборкаДетальныеЗаписи.ЗаказНаПеремещениеТМЦ;
НовСтр.Резервировать=Истина;
НовСтр.ПС_ВыпускПродукции=ВыборкаДетальныеЗаписи.ПС_ВыпускПродукции;
КонецЦикла;
об.Записать();
Сообщить(Строка(ВыборкаДетальныеЗаписи.Ссылка));
Показать
(9)
Запрос=Новый Запрос;
Запрос.Текст=
"ВЫБРАТЬ
| ПеремещениеТМЦТЧ.Ссылка КАК Ссылка,
| ПеремещениеТМЦТЧ.НомерСтроки КАК НомерСтроки,
| ПеремещениеТМЦТЧ.Номенклатура КАК Номенклатура,
| ПеремещениеТМЦТЧ.ВариантИсполнения КАК ВариантИсполнения,
| ПеремещениеТМЦТЧ.Кол КАК Кол,
| ПеремещениеТМЦТЧ.ЕдИзм КАК ЕдИзм,
| ПеремещениеТМЦТЧ.Коэффициент КАК Коэффициент,
| ПеремещениеТМЦТЧ.ЗаказНаПеремещениеТМЦ КАК ЗаказНаПеремещениеТМЦ,
| ПеремещениеТМЦТЧ.Резервировать КАК Резервировать,
| ПеремещениеТМЦТЧ.ПодЗаказ КАК ПодЗаказ,
| ПеремещениеТМЦТЧ.ПС_ВыпускПродукции КАК ПС_ВыпускПродукции,
| ПеремещениеТМЦТЧ.ВидПотребности КАК ВидПотребности,
| ПеремещениеТМЦТЧ.НоменклатураГП КАК НоменклатураГП,
| ПеремещениеТМЦТЧ.ВариантИсполненияГП КАК ВариантИсполненияГП
|ИЗ
| Документ.ПеремещениеТМЦ.ТЧ КАК ПеремещениеТМЦТЧ
|ГДЕ
| ПеремещениеТМЦТЧ.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон";
Запрос.УстановитьПараметр("ДатаНач",ДатаНач);
Запрос.УстановитьПараметр("ДатаКон",ДатаКон);
Показать
(16)тогда в запросе надо получать только ссылку на документ, остальное не надо.
Запрос=Новый Запрос;
Запрос.Текст=
"ВЫБРАТЬ
| ПеремещениеТМЦ.Ссылка КАК Ссылка
|ИЗ
| Документ.ПеремещениеТМЦ КАК ПеремещениеТМЦ
|ГДЕ
| ПеремещениеТМЦ.Дата МЕЖДУ &ДатаНач И &ДатаКон";
Запрос.УстановитьПараметр("ДатаНач",ДатаНач);
Запрос.УстановитьПараметр("ДатаКон",ДатаКон);
далее
//////////////////////////////////////////////////////////// //////////
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
об = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
Для каждой НовСтр из об.ТЧ цикл
НовСтр.новыйРеквизит1 = ЗначениеНовогоРеквизита1; //у вас не понятно, чем будет заполняться, но думаю вы понимаете пример
НовСтр.новыйРеквизит2 = ЗначениеНовогоРеквизита2;
... //и так все новые, старые реквизиты трогать не надо
КонецЦикла;
Сообщить(Строка(ВыборкаДетальныеЗаписи.Ссылка));
об.Записать();
КонецЦикла;
Показать
(17)так хорошо,но мне нужно получить значение из тч,чтобы заполнить значение НоменклатураГП
НовСтр.ВариантИсполненияГП=ВыборкаДетальныеЗаписи.ВариантИсполнения;
НовСтр.НоменклатураГП=ВыборкаДетальныеЗаписи.Номенклатура ;
НовСтр.ВидПотребности=Перечисления.ВидыПотребностейВТМЦ.Внешняя;
(17)
Вот так получилось,спасибо)
Запрос=Новый Запрос;
Запрос.Текст=
"ВЫБРАТЬ
| ПеремещениеТМЦ.Ссылка КАК Ссылка,
| ПеремещениеТМЦТЧ.Номенклатура КАК Номенклатура,
| ПеремещениеТМЦТЧ.ВариантИсполнения КАК ВариантИсполнения
|ИЗ
| Документ.ПеремещениеТМЦ КАК ПеремещениеТМЦ
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПеремещениеТМЦ.ТЧ КАК ПеремещениеТМЦТЧ
| ПО ПеремещениеТМЦ.Ссылка = ПеремещениеТМЦТЧ.Ссылка
|ГДЕ
| ПеремещениеТМЦ.Дата МЕЖДУ &ДатаНач И &ДатаКон";
Запрос.УстановитьПараметр("ДатаНач",ДатаНач);
Запрос.УстановитьПараметр("ДатаКон",ДатаКон);
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
об = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
Для каждого НовСтр из об.ТЧ цикл
НовСтр.ВариантИсполненияГП=ВыборкаДетальныеЗаписи.ВариантИсполнения;
НовСтр.НоменклатураГП=ВыборкаДетальныеЗаписи.Номенклатура ;
НовСтр.ВидПотребности=Перечисления.ВидыПотребностейВТМЦ.Внешняя;
КонецЦикла;
Сообщить(Строка(ВыборкаДетальныеЗаписи.Ссылка));
об.Записать();
КонецЦикла;
ПоказатьВот так получилось,спасибо)
(19)в вашем случае - еще раз не нужна в запросе табличная часть, получайте старые реквизиты так, они же все доступны для чтения
НовСтр.ВариантИсполненияГП=НовСтр.ВариантИсполнения;
НовСтр.НоменклатураГП=НовСтр.Номенклатура ;
НовСтр.ВидПотребности=НовСтр.ВидыПотребностейВТМЦ.Внешняя;
НовСтр.ВариантИсполненияГП=НовСтр.ВариантИсполнения;
НовСтр.НоменклатураГП=НовСтр.Номенклатура ;
НовСтр.ВидПотребности=НовСтр.ВидыПотребностейВТМЦ.Внешняя;
(8)Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
перед ПолучитьОбъект()
перед ПолучитьОбъект()
//////////////////////////////////////////////////////////////////////
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
об = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
об.ТЧ.Очистить();
Для каждой новойстроки из НовыеСтроки цикл
НовСтр = об.ТЧ.Добавить();
НовСтр.ВариантИсполненияГП=ВыборкаДетальныеЗаписи.ВариантИсполнения;
НовСтр.НоменклатураГП=ВыборкаДетальныеЗаписи.Номенклатура ;
НовСтр.ВидПотребности=Перечисления.ВидыПотребностейВТМЦ.Внешняя;
НовСтр.ЕдИзм=ВыборкаДетальныеЗаписи.ЕдИзм;
НовСтр.Кол=ВыборкаДетальныеЗаписи.Кол;
НовСтр.ПодЗаказ=ВыборкаДетальныеЗаписи.ПодЗаказ;
НовСтр.Коэффициент=ВыборкаДетальныеЗаписи.Коэффициент;
НовСтр.ВариантИсполнения=ВыборкаДетальныеЗаписи.ВариантИсполнения;
НовСтр.Номенклатура=ВыборкаДетальныеЗаписи.Номенклатура ;
НовСтр.ЗаказНаПеремещениеТМЦ=ВыборкаДетальныеЗаписи.ЗаказНаПеремещениеТМЦ;
НовСтр.Резервировать=Истина;
НовСтр.ПС_ВыпускПродукции=ВыборкаДетальныеЗаписи.ПС_ВыпускПродукции;
КонецЦикла;
Сообщить(Строка(ВыборкаДетальныеЗаписи.Ссылка));
об.Записать();
КонецЦикла;
Показать
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)