|
Помогите прочитать код формы подбора товаров продажи в типовой УТ | ☑ | ||
---|---|---|---|---|
0
И Р
14.01.19
✎
22:32
|
http://www.1c-cod.ru/code/L8GrRN27sBLJ2eJ/
Уважаемые форумчане, никак не могу понять на каком этапе и откуда происходит заполнения данных табличной части корзины. Видно, что в процедуре Процедура ПеретащитьВКорзинуНаСервере(Данные) идёт перебор НовыеСтроки в цикле но выше не могу осмыслить что происходит, не могу понять откуда берутся ПараметрыПеретаскивания. Могли бы Вы описать логическую цепочку? Заранее очень благодарен! |
|||
1
palsergeich
14.01.19
✎
22:39
|
(0) ПараметрыПеретаскивания - поставляет Вам платформа.
|
|||
2
И Р
14.01.19
✎
22:44
|
(1) Если можно было бы на примере, допустим я хочу в табличную часть Корзина заполнить реквизит объекта "Вес" из "Номенклатура.ВесЗнаменатель" на каком этапе это можно сделать правильно?
|
|||
3
palsergeich
14.01.19
✎
22:45
|
По факту - вы интерактивно в одном элементе формы являющимся или ДанныеФормыКоллекция или ДанныеФормыДерево выделяете несколько строк и интерактивно переносите в другой элеменьт формы имеющий тип - ДанныеФормыКоллекция или ДанныеФормыДерево. Вот это и описано в ПараметрыПеретаскивания
|
|||
4
palsergeich
14.01.19
✎
22:45
|
(2) А кто мешает посмотреть это в отладчике?
|
|||
5
palsergeich
14.01.19
✎
22:46
|
+ так как это происходит на клиенте - Номенклатура.ВесЗнаменатель без обращения на сервер не быйдет и надо будет подумать как это сделать оптимальнее.
|
|||
6
palsergeich
14.01.19
✎
22:48
|
В любой посиковик вбейте - перетаскивание 1С, ссылок с примерами полно.
Я думал есть какой то конкрентый вопрос, а не напишите код за меня. |
|||
7
palsergeich
14.01.19
✎
22:51
|
(3) Типов больше, но в рамках этой задачи это не важно.
|
|||
8
И Р
14.01.19
✎
23:34
|
(6) Не, код писать за меня не надо. Пытаюсь понять как работает,... книги читал но не всё остаётся в голове, нужна практика для закрепления. А иногда ловишь себя на мысли, что из книги понял совсем не так как есть на самом деле.
|
|||
9
И Р
14.01.19
✎
23:37
|
Просто на примере проще пройтись по логическому каскаду.
|
|||
10
FIXXXL
15.01.19
✎
08:46
|
(2) добавь на форму элемент у которого путь к данным "Номенклатура.ВесЗнаменатель"
|
|||
11
И Р
15.01.19
✎
12:04
|
(10) Можно добавить, но в таком случае данные будут подставляться, а Итог рассчитан не будет. Т.е. придётся делать переобход строчек и суммировать это поле, чего не хотелось бы. Или вы что то другое имели в виду?
|
|||
12
И Р
15.01.19
✎
12:32
|
(5) Не совсем понимаю, почему это происходит на клиенте, когда функция &НаСервере ?
|
|||
13
FIXXXL
15.01.19
✎
12:34
|
(11) как вариант, скинь массив номенклатур в функцию с &СерверБезКонтекста, одним запросом рассчитай Итог, результат функции выведи в подвал или куда там...
|
|||
14
И Р
15.01.19
✎
12:36
|
Также почему то не срабатывают точки останова в этой функции, хотя сервер запущен с debug
(13) Спасибо! Рабочий совет, если не разберусь в итоге то так и сделаю, просто пытаюсь понять архитектуру решения. |
|||
15
PiotrLoginov
15.01.19
✎
12:39
|
(14) >> почему то не срабатывают точки останова в этой функции
Функция серверная? режим клиент-серверный? смотреть в подключенных предметах отладки |
|||
16
FIXXXL
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
|
рано тебе еще ут пилить
|
|||
21
hhhh
15.01.19
✎
16:07
|
(19) да, нет такого предопределенного элемента. Это ты его сейчас на ходу придумал
|
|||
22
И Р
16.01.19
✎
00:25
|
В общем разобрался, всем огромное спасибо, методика "Наставить точек останова в каждую функцию и смотреть какая за какой срабатывает" сработала. Понял зачем всё всё таки нужно ПредопределенноеЗначение(...).
Нашёл наконец где происходит наполнение ПараметрыТовара. Интересно а есть ли какие то определённые методики в разборе чужого кода в 1С? (20) Ну сказал конечно как в лужу пёрнул, вроде звук был, а смысла никакого )) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |