Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Помогите прочитать код формы подбора товаров продажи в типовой УТ

Помогите прочитать код формы подбора товаров продажи в типовой УТ
Я
   И Р
 
14.01.19 - 22:32
http://www.1c-cod.ru/code/L8GrRN27sBLJ2eJ/
Уважаемые форумчане, никак не могу понять на каком этапе и откуда происходит заполнения данных табличной части корзины.

Видно, что в процедуре Процедура ПеретащитьВКорзинуНаСервере(Данные)
идёт перебор  НовыеСтроки в цикле но выше не могу осмыслить что происходит, не могу понять откуда берутся ПараметрыПеретаскивания.

Могли бы Вы описать логическую цепочку? Заранее очень благодарен!
 
 
   palsergeich
 
1 - 14.01.19 - 22:39
(0) ПараметрыПеретаскивания - поставляет Вам платформа.
   И Р
 
2 - 14.01.19 - 22:44
(1) Если можно было бы на примере, допустим я хочу в табличную часть Корзина заполнить реквизит объекта "Вес" из "Номенклатура.ВесЗнаменатель"  на каком этапе это можно сделать правильно?
   palsergeich
 
3 - 14.01.19 - 22:45
По факту - вы интерактивно в одном элементе формы являющимся или ДанныеФормыКоллекция или ДанныеФормыДерево выделяете несколько строк и интерактивно переносите в другой элеменьт формы имеющий тип - ДанныеФормыКоллекция или ДанныеФормыДерево. Вот это и описано в ПараметрыПеретаскивания
   palsergeich
 
4 - 14.01.19 - 22:45
(2) А кто мешает посмотреть это в отладчике?
   palsergeich
 
5 - 14.01.19 - 22:46
+ так как это происходит на клиенте - Номенклатура.ВесЗнаменатель без обращения на сервер не быйдет и надо будет подумать как это сделать оптимальнее.
   palsergeich
 
6 - 14.01.19 - 22:48
В любой посиковик вбейте - перетаскивание 1С, ссылок с примерами полно.
Я думал есть какой то конкрентый вопрос, а не напишите код за меня.
   palsergeich
 
7 - 14.01.19 - 22:51
(3) Типов больше, но в рамках этой задачи это не важно.
   И Р
 
8 - 14.01.19 - 23:34
(6) Не, код писать за меня не надо. Пытаюсь понять как работает,... книги читал но не всё остаётся в голове, нужна практика для закрепления. А иногда ловишь себя на мысли, что  из книги понял совсем не так как есть на самом деле.
   И Р
 
9 - 14.01.19 - 23:37
Просто на примере проще пройтись по логическому каскаду.
   FIXXXL
 
10 - 15.01.19 - 08:46
(2) добавь на форму элемент у которого путь к данным "Номенклатура.ВесЗнаменатель"
 
 Рекламное место пустует
   И Р
 
11 - 15.01.19 - 12:04
(10) Можно добавить, но в таком случае данные будут подставляться, а Итог рассчитан не будет. Т.е. придётся делать переобход строчек и суммировать это поле, чего не хотелось бы. Или вы что то другое имели в виду?
   И Р
 
12 - 15.01.19 - 12:32
(5) Не совсем понимаю, почему это происходит на клиенте, когда функция &НаСервере ?
   FIXXXL
 
13 - 15.01.19 - 12:34
(11) как вариант, скинь массив номенклатур в функцию с &СерверБезКонтекста, одним запросом рассчитай Итог, результат функции выведи в подвал или куда там...
   И Р
 
14 - 15.01.19 - 12:36
Также почему то не срабатывают точки останова в этой функции, хотя сервер запущен с debug

(13) Спасибо! Рабочий совет, если не разберусь в итоге то так и сделаю, просто пытаюсь понять архитектуру решения.
   PiotrLoginov
 
15 - 15.01.19 - 12:39
(14)  >> почему то не срабатывают точки останова в этой функции
Функция серверная? режим клиент-серверный? смотреть в подключенных предметах отладки
   FIXXXL
 
16 - 15.01.19 - 12:59
(14) на новых платформах постоянно Сервер в отладке отваливается... уже в привычку входит перед дебагом зайти в предметы и перещелкнуть строку с Сервер туда-сюда...
   И Р
 
17 - 15.01.19 - 13:38
Короче решил пока делать так: насовал точек останова в каждую процедуру и функцию и теперь буду пошагово смотреть что когда срабатывает.)
   И Р
 
18 - 15.01.19 - 15:56
Поднялся по иерархии вверх, в итоге понял как одно "вытекает" из другого. Но вот столкнулся с такой ситуацией:


Функция ПараметрыТовара(Номенклатура = Неопределено) Экспорт
    
    ПараметрыТовара = Новый Структура();
    ПараметрыТовара.Вставить("Номенклатура", ПредопределенноеЗначение("Справочник.Номенклатура.ПустаяСсылка"));
    ПараметрыТовара.Вставить("ТипНоменклатуры", ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.ПустаяСсылка"));
    ПараметрыТовара.Вставить("ВидНоменклатуры", ПредопределенноеЗначение("Справочник.ВидыНоменклатуры.ПустаяСсылка"));
    ПараметрыТовара.Вставить("Артикул", "");
    ПараметрыТовара.Вставить("Характеристика", ПредопределенноеЗначение("Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка"));
    ПараметрыТовара.Вставить("ХарактеристикиИспользуются", Ложь);
    ПараметрыТовара.Вставить("Упаковка", ПредопределенноеЗначение("Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка"));
    ПараметрыТовара.Вставить("ВидЦены", ПредопределенноеЗначение("Справочник.ВидыЦен.ПустаяСсылка"));
    ПараметрыТовара.Вставить("Цена",0);
    ПараметрыТовара.Вставить("Склад", ПредопределенноеЗначение("Справочник.Склады.ПустаяСсылка"));
    ПараметрыТовара.Вставить("ДатаОтгрузки",'00010101');
    ПараметрыТовара.Вставить("СрокПоставки",0);
    ПараметрыТовара.Вставить("КоличествоУпаковок",0);
    ПараметрыТовара.Вставить("Количество",0);
    ПараметрыТовара.Вставить("ЭтоТовар",Ложь);
    ПараметрыТовара.Вставить("ЭтоУслуга",Ложь);
    ПараметрыТовара.Вставить("ВидЦеныПоставщика", ПредопределенноеЗначение("Справочник.ВидыЦенПоставщиков.ПустаяСсылка"));
    ПараметрыТовара.Вставить("НоменклатураПоставщика",ПредопределенноеЗначение("Справочник.НоменклатураПоставщиков.ПустаяСсылка"));
    ПараметрыТовара.Вставить("ЦеноваяГруппа",ПредопределенноеЗначение("Справочник.ЦеновыеГруппы.ПустаяСсылка"));
    ПараметрыТовара.Вставить("ПроцентРучнойСкидки",0);
    ПараметрыТовара.Вставить("Продавец", ПредопределенноеЗначение("Справочник.Пользователи.ПустаяСсылка"));
    ПараметрыТовара.Вставить("Помещение", ПредопределенноеЗначение("Справочник.СкладскиеПомещения.ПустаяСсылка"));
    ПараметрыТовара.Вставить("Марка", ПредопределенноеЗначение("Справочник.Марки.ПустаяСсылка"));
    ПараметрыТовара.Вставить("РольАссортимента", ПредопределенноеЗначение("Перечисление.РолиАссортимента.ПустаяСсылка"));
    ПараметрыТовара.Вставить("РейтингПродаж", ПредопределенноеЗначение("Справочник.РейтингиПродажНоменклатуры.ПустаяСсылка"));
    ПараметрыТовара.Вставить("СтадияАссортимента", ПредопределенноеЗначение("Перечисление.СтадииАссортимента.ПустаяСсылка"));
    ПараметрыТовара.Вставить("ТоварнаяКатегория", ПредопределенноеЗначение("Справочник.ТоварныеКатегории.ПустаяСсылка"));
    ПараметрыТовара.Вставить("НоменклатураНабора", ПредопределенноеЗначение("Справочник.Номенклатура.ПустаяСсылка"));
    ПараметрыТовара.Вставить("ХарактеристикаНабора", ПредопределенноеЗначение("Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка"));
    ПараметрыТовара.Вставить("ВариантКомплектацииНоменклатуры", ПредопределенноеЗначение("Справочник.ВариантыКомплектацииНоменклатуры.ПустаяСсылка"));
    ПараметрыТовара.Вставить("ВариантОбеспечения", ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.ПустаяСсылка"));
    ПараметрыТовара.Вставить("Серия", ПредопределенноеЗначение("Справочник.СерииНоменклатуры.ПустаяСсылка"));
    ПараметрыТовара.Вставить("Доступно", 0);
    ПараметрыТовара.Вставить("ВНаличии", 0);
    ПараметрыТовара.Вставить("Погрешность", 0);
    ПараметрыТовара.Вставить("Вес", ПредопределенноеЗначение("Справочник.Номенклатура.ВесЗнаменатель"));




Выкидывает ошибку на  последней строчке. Но почему? Ведь у справочника Номенклатура есть реквизит "ВесЗнаменатель"
   И Р
 
19 - 15.01.19 - 15:59
ПредопределенноеЗначение("Справочник.Номенклатура.ВесЗнаменатель"));
по причине:
Предопределенный элемент не существует
   Вафель
 
20 - 15.01.19 - 16:04
рано тебе еще ут пилить
   hhhh
 
21 - 15.01.19 - 16:07
(19) да, нет такого предопределенного элемента. Это ты его сейчас на ходу придумал
   И Р
 
22 - 16.01.19 - 00:25
В общем разобрался, всем огромное спасибо, методика "Наставить точек останова в каждую функцию и смотреть какая за какой срабатывает" сработала. Понял зачем всё всё таки нужно ПредопределенноеЗначение(...).
   Нашёл наконец где происходит наполнение ПараметрыТовара.
Интересно а есть ли какие то определённые методики в разборе чужого кода в 1С?

(20) Ну сказал конечно как в лужу пёрнул, вроде звук был, а смысла никакого ))


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