Имя: Пароль:
1C
1С v8
Оптимизация кода
0 bfss-732
 
11.08.20
14:55
Всем привет!
Есть таб часть товары, в форме документа  Заказ.
Нужно программно заполнять реквизиты строки этой табчасти при вводе новой номенклатуры. Как оптимальнее выбирать данные через:
1) ЗАПРОС
2) "Справочники.Номенклатура.ПолучитьСсылку(ГУИД)" запись каждого значение в переменную..., а потом ОписаниеТовара = Новый Структура; ОписаниеТовара.Вставить(ключ, Значение)?
1 VladZ
 
11.08.20
15:17
(0) Не понял, зачем здесь "Справочники.Номенклатура.ПолучитьСсылку(ГУИД)"
2 bfss-732
 
11.08.20
15:21
(1) ПолучитьСтруктуруТовара(ГУИД)
3 Kesim
 
11.08.20
15:22
(0) вар 1: вывести на форму в режиме предприятия реквизит номенклатуры(данные = Номенклатура.ОписаниеТовара)
вар 2: вызов сервера "стрТЧ.ОписаниеТовара = стрТЧ.Номенклатуры.ОписаниеТовара"
вар 3: вызов сервера без контекста  с функцией  в которой "возврат вхНоменклатура.ОписаниеТовара"
4 Garykom
 
гуру
11.08.20
15:23
(0) ННП. Но имхо какую то фигню удумал с точки зрения как надо.
5 lodger
 
11.08.20
15:32
при возникновении события
НаКлиенте мы берем строку\строки\всю таблицу, пакуем в структуру где ключ = номерстроки, а значение = стр.номенклатура
вызываем функцию БезКонтекстаНаСервере

в функции перепакуем структуру в ТЗ с номерами строк и Номенклатура ссылка.
суем в запрос, присоединяем к ВТизТЗ все необходимые реквизиты номенклатуры и записи РС (цены например).
возврат запрос.выполнить.выгрузить();

НаКлиенте Для каждого Стр из РезФункции Цикл
СтрТЧ = ТабЧасть[Стр.НомерСтроки];
заполнитьзначениясвойств(стртч,стр);
конецпроцедуры
6 H A D G E H O G s
 
11.08.20
15:34
(0)

РеквизитыНоменклатуры=ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ТекущаяСтрока.Номенклатура,"ВидНоменклатуры,Крепость");
ЗаполнитьЗначениеСвойств(ТекущаяСтрока,РеквизитыНоменклатуры);
7 H A D G E H O G s
 
11.08.20
15:36
(5) Так себе идея.
8 H A D G E H O G s
 
11.08.20
15:43
(5) ТыжПрограммист

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

Вроде Соответствие нормально сериализуется, но это не точно.
9 bfss-732
 
11.08.20
15:48
(6) я с БСП на Ваше Величество)) Как это в код модуля формы запилить?))
10 H A D G E H O G s
 
11.08.20
15:56
(9) Ну посмотри как в БСП
11 bfss-732
 
11.08.20
15:57
(10) глянул, у меня не типовая база((
12 Garykom
 
гуру
11.08.20
16:03
>"ВидНоменклатуры,Крепость"

"Крепость"
Мне всегда было интересно профдеформация это лечится или нет
13 Garykom
 
гуру
11.08.20
16:04
(12)+ если кто не понял https://ru.wiktionary.org/wiki/крепкость
14 Garykom
 
гуру
11.08.20
16:04
(13)+ да я в курсе https://ru.wikipedia.org/wiki/Крепость_напитков

просто интересно
15 Garykom
 
гуру
11.08.20
16:06
(14)+ Причем напитки "крепКие"
16 bfss-732
 
11.08.20
16:08
(15) столько сообщений и не одного по теме
17 H A D G E H O G s
 
11.08.20
16:08
(12) Если это намек на алкоголизм, то тут мимо, Гарри, синдром Жильбера не дает мне шансов на потребление этой штуки.
18 H A D G E H O G s
 
11.08.20
16:08
(16) Да это местный эксперт.
19 Garykom
 
гуру
11.08.20
16:10
(16) "при вводе новой номенклатуры" - подразумевается создание новых элементов в справочник Номенклатура

Или просто добавление новой строчки в ТЧ?
20 Garykom
 
гуру
11.08.20
16:12
(17) Это намек на профдефомацию законченных алкоголиков.

В смысле не тех у кого алкоголизм а кто много автоматизацией алкоголя занимался и теперь ко всему как к алкоголю подходит со справками ))
21 bfss-732
 
11.08.20
16:13
(19) С начала вводим новую номенклатуру в справочнике, а потом ее используем вышеуказанным способом. Реквизиты при проведении Заказа проверяются на наличие
22 Garykom
 
гуру
11.08.20
16:15
(21) Ну так и создавай программно номенклатуру через свои формочки блин
23 bfss-732
 
11.08.20
16:28
(22) "Я тебе про Фому, ты мне про Ерему" - Пословица)))
24 Garykom
 
гуру
11.08.20
16:41
(23) Я реально не понимаю в чем вопрос и проблема.
25 Конструктор1С
 
11.08.20
16:44
Ох уж эти 1сники, ох уж эта бизнес-логика в форме документа...
26 lodger
 
11.08.20
17:26
(21) о. я кажется доехал.
есть документ.
есть тч.
в тч есть реквизиты для создания номенклатуры.
в тч есть реквизит номенклатурассылка, но пустая.

в итоге надо - проверить наличие номенклатуры по ключам получить её ссылку или записать новую?

что-то типа загрузки инвойсов от торгашей зарубежных.
27 Garykom
 
гуру
11.08.20
17:33
(26) дык саму ТЧ в ТЗ и параметром как ВТ в запрос, там заполнить через левое и вернуть назад
28 lodger
 
11.08.20
17:37
(27) но вернуть не сразу, а раздуплить строки с пустой ссылкой по ключам и записать новые элементы справочника.
29 Kesim
 
11.08.20
17:50
(26) теория заговора прям..
30 H A D G E H O G s
 
11.08.20
18:47
(27) Хорошая (нет, плохая) попытка, но нет.