![]() |
![]() |
![]() |
|
Автозаполнение табличной части документа из справочника | ☑ | ||
---|---|---|---|---|
0
mila_99
17.05.18
✎
20:11
|
Помогите:)
Документ создается программно и зависимости от номенклатуры надо записать табличную часть документа данными из справочника "ПереченьВходногоКонтроля". &НаСервере Функция ПолучитьПараметрыПроверки(Номенклатура) Экспорт Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПереченьВходногоКонтроля.Ссылка КАК ПереченьВходногоКонтроля, | ПереченьВходногоКонтроля.Номенклатура КАК Номенклатура, | ПереченьВходногоКонтроля.ПараметрыПроверки.( | Ссылка КАК Ссылка, | НомерСтроки КАК НомерСтроки, | НаименованиеПараметров КАК НаименованиеПараметров, | ЕдиницаИзмерения КАК ЕдиницаИзмерения, | ТУПараметра КАК ТУПараметра, | ТребованияКПараметру КАК ТребованияКПараметру | ) КАК ПараметрыПроверки |ИЗ | Справочник.ПереченьВходногоКонтроля КАК ПереченьВходногоКонтроля |ГДЕ | ПереченьВходногоКонтроля.Номенклатура = &Номенклатура"; Запрос.УстановитьПараметр("Номенклатура", Номенклатура); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); СписокПараметров = Новый Структура; СписокПараметров.Вставить("НаименованиеПараметров"); СписокПараметров.Вставить("ЕдиницаИзмерения"); СписокПараметров.Вставить("ТУПараметра"); СписокПараметров.Вставить("ТребованияКПараметру"); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл СписокПараметров.НаименованиеПараметров = ВыборкаДетальныеЗаписи.ПараметрыПроверки.НаименованиеПараметров; СписокПараметров.ЕдиницаИзмерения = ВыборкаДетальныеЗаписи.ПараметрыПроверки.ЕдиницаИзмерения; СписокПараметров.ТУПараметра = ВыборкаДетальныеЗаписи.ПараметрыПроверки.ТУПараметра; СписокПараметров.ТребованияКПараметру = ВыборкаДетальныеЗаписи.ПараметрыПроверки.ТребованияКПараметру; КонецЦикла; Возврат СписокПараметров; КонецФункции |
|||
1
Мимохожий Однако
17.05.18
✎
20:54
|
(0) Объсни фрагмент
ПереченьВходногоКонтроля.ПараметрыПроверки.( | Ссылка КАК Ссылка, | НомерСтроки КАК НомерСтроки, | НаименованиеПараметров КАК НаименованиеПараметров, | ЕдиницаИзмерения КАК ЕдиницаИзмерения, | ТУПараметра КАК ТУПараметра, | ТребованияКПараметру КАК ТребованияКПараметру | ) КАК ПараметрыПроверки |
|||
2
Mankubus
17.05.18
✎
20:54
|
(0) вопрос то где?
|
|||
3
AlvlSpb
17.05.18
✎
21:09
|
(0) Функция ПолучитьПараметрыПроверки(Номенклатура) Экспорт
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПереченьВходногоКонтроля.ПараметрыПроверки.Ссылка.Номенклатура КАК Номенклатура, | ПереченьВходногоКонтроля.ПараметрыПроверки.НаименованиеПараметров КАК НаименованиеПараметров, | ПереченьВходногоКонтроля.ПараметрыПроверки.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | ПереченьВходногоКонтроля.ПараметрыПроверки.ТУПараметра КАК ТУПараметра, | ПереченьВходногоКонтроля.ПараметрыПроверки.ТребованияКПараметру КАК ТребованияКПараметру |ИЗ | Справочник.ПереченьВходногоКонтроля.ПараметрыПроверки КАК ПереченьВходногоКонтроля |ГДЕ | ПереченьВходногоКонтроля.Ссылка.Номенклатура = &Номенклатура"; Запрос.УстановитьПараметр("Номенклатура", Номенклатура); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); СписокПараметров = Новый Структура; СписокПараметров.Вставить("НаименованиеПараметров"); СписокПараметров.Вставить("ЕдиницаИзмерения"); СписокПараметров.Вставить("ТУПараметра"); СписокПараметров.Вставить("ТребованияКПараметру"); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл СписокПараметров.НаименованиеПараметров = ВыборкаДетальныеЗаписи.НаименованиеПараметров; СписокПараметров.ЕдиницаИзмерения = ВыборкаДетальныеЗаписи.ЕдиницаИзмерения; СписокПараметров.ТУПараметра = ВыборкаДетальныеЗаписи.ТУПараметра; СписокПараметров.ТребованияКПараметру = ВыборкаДетальныеЗаписи..ТребованияКПараметру; КонецЦикла; Возврат СписокПараметров; КонецФункции |
|||
4
Доминошник
17.05.18
✎
21:14
|
А какое отношение заголовок темы - "Автозаполнение табличной части документа" имеет к запросу, читающему табличную часть документа?
|
|||
5
AlvlSpb
17.05.18
✎
21:25
|
(3) Твою дивизию. Копировал и не убрал точки. Запрос не так
"ВЫБРАТЬ | ПереченьВходногоКонтроляПараметрыПроверки.Ссылка.Номенклатура КАК Номенклатура, | ПереченьВходногоКонтроляПараметрыПроверки.НаименованиеПараметров КАК НаименованиеПараметров, | ПереченьВходногоКонтроляПараметрыПроверки.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | ПереченьВходногоКонтроляПараметрыПроверки.ТУПараметра КАК ТУПараметра, | ПереченьВходногоКонтроляПараметрыПроверки.ТребованияКПараметру КАК ТребованияКПараметру |ИЗ | Справочник.ПереченьВходногоКонтроля.ПараметрыПроверки КАК ПереченьВходногоКонтроляПараметрыПроверки |ГДЕ | ПереченьВходногоКонтроля.ПараметрыПроверки.Ссылка.Номенклатура = &Номенклатура"; |
|||
6
mila_99
17.05.18
✎
21:41
|
(5) подскажи, как правильно теперь обратиться к функции, чтобы все строки табличной части записывал в документ в коде:
&НаКлиенте Процедура СоздатьПротокол(Команда) ФормаОбъекта=ПолучитьФорму("Документ.ПротоколИспытанийИзделий.Форма.ФормаДокумента"); ДанныеФормы=ФормаОбъекта.Объект; ДанныеФормы.Основание=Объект.Ссылка; ТекСтрока=Элементы.Номенклатура.ТекущиеДанные; ДанныеФормы.Наименование=ТекСтрока.Наименование; Для каждого НоваяСтрока из ? Цикл Парам1 = ПолучитьПараметрыПроверки(ТекСтрока.Наименование); НоваяСтрока = ДанныеФормы.Испытания.Добавить(); НоваяСтрока.Номенклатура=Парам1.Наименование; НоваяСтрока.НаименованиеПараметров = Парам1.НаименованиеПараметров; НоваяСтрока.ЕдиницаИзмерения = Парам1.ЕдиницаИзмерения; НоваяСтрока.ТУПараметра = Парам1.ТУПараметра; НоваяСтрока.ТребованияКПараметру = Парам1.ТребованияКПараметру; КонецЦикла; Парам = ПолучитьЗаводскойНомер(ТекСтрока.Наименование); ДанныеФормы.ЗаводскойНомер = Парам.ЗаводскойНомер; КопироватьДанныеФормы(ДанныеФормы,ФормаОбъекта.Объект); ФормаОбъекта.Открыть(); КонецПроцедуры |
|||
7
AlvlSpb
17.05.18
✎
22:12
|
(6) Ну это вообще белиберда, извините. Лучше объясните, что вы хотите сделать
|
|||
8
mila_99
17.05.18
✎
22:13
|
в общем, создаю документ программно из другого документа.Мне нужно табличную часть создаваемого документа заполнить данными из справочника.как это сделать ?
|
|||
9
AlvlSpb
17.05.18
✎
22:26
|
(8) Чтобы долго не объяснять https://1c-programmer-blog.ru/programmirovanie/kak-otkryt-formu-s-zapolneniem.html Делаете вашу таблицу из справочника с такими же полями как у ТЧ открываемого документа и передаете ее как параметр в открываемую форму
Ну и вдогонку http://catalog.mista.ru/public/236382/ |
|||
10
mila_99
17.05.18
✎
23:42
|
не могу никак разобраться.как передать?
|
|||
11
hhhh
18.05.18
✎
06:27
|
(10) так как-то
Функция ПолучитьПараметрыПроверки(Номенклатура) Экспорт + Code Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПереченьВходногоКонтроля.ПараметрыПроверки.Ссылка.Номенклатура КАК Номенклатура, | ПереченьВходногоКонтроля.ПараметрыПроверки.НаименованиеПараметров КАК НаименованиеПараметров, | ПереченьВходногоКонтроля.ПараметрыПроверки.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | ПереченьВходногоКонтроля.ПараметрыПроверки.ТУПараметра КАК ТУПараметра, | ПереченьВходногоКонтроля.ПараметрыПроверки.ТребованияКПараметру КАК ТребованияКПараметру |ИЗ | Справочник.ПереченьВходногоКонтроля.ПараметрыПроверки КАК ПереченьВходногоКонтроля |ГДЕ | ПереченьВходногоКонтроля.Ссылка.Номенклатура = &Номенклатура"; Запрос.УстановитьПараметр("Номенклатура", Номенклатура); Возврат Запрос.Выполнить().Выгрузить(); КонецФункции и потом так ДанныеФормы.Испытания.Загрузить(ПолучитьПараметрыПроверки(ТекСтрока.Наименование)); |
|||
12
mila_99
18.05.18
✎
22:27
|
выдает ошибку:
{Документ.НаправлениеНаВходнойКонтроль.Форма.ФормаДокумента.Форма(146)}: Ошибка при вызове метода контекста (ПолучитьПараметрыПроверки) ДанныеФормы.Испытания.Загрузить(ПолучитьПараметрыПроверки(ТекСтрока.Наименование)); по причине: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: НачалоСвойства: ret Форма: Элемент Тип: {http://www.w3.org/2001/XMLSchema}anyType по причине: Ошибка отображения типов: Отсутствует отображение для типа '{http://v8.1c.ru/8.1/data/core}ValueTable' |
|||
13
hhhh
18.05.18
✎
23:09
|
(12) вы это на сервере делайте. не надо вам тут передачу между клиентом и сервером мутить.
|
|||
14
mila_99
19.05.18
✎
00:14
|
а теперь ошибку не выдает, но данные не заполняются. Появляется пустая строка
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |