Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Оптимизация кода

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

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

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

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

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

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

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

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

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

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

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.