Имя: Пароль:
1C
1С v8
Работа с деревом в 1с.
0 elisey654321
 
09.01.18
13:37
Всех  наступившим и с первым рабочим днем, ну как же в первый рабочий день в году и без проблем.
Суть вопроса такова:
Платформа: 1С 8.3.10.2650
Конфигурация: «ПС:Управление мебельной фабрикой 2.0» (2.0.1.2) (на данный момент уже почти полностью переписанная ,более 10-ю программистами, ну пока не суть важно) конфигурация как я понимаю написана на базе БП 2.0.
Предыстория ,для решения некоторых внутренних требование от руководства по ведению и контролю продаж в конфигурацию были внесены изменения ,а именно внедрение управляемых форм (что повлекло за собой не мало проблем).
Вот, в чем суть вопроса, в базе уже достаточно давно создали некий справочник(ВариантИсполнения) для хранения дополнительной информации о номенклатуре ,а именно о составных ее частях в форме дерева т.е. допустим есть номенклатура ("Кухня") у нее есть ВариантИсполения("Кухня") которая хранит в себе информацию о составных частях в форме дерева то есть Стол,стул,шкаф и тд. И сейчас меня попросили сделать саму простую ,как для меня казалось на тот момент задачу, сделать печатную форму которая будет отображать первый уровень дерева,а данная печатная форма бы вызывалась из Заказа Покупателя. Но перебирая форму ,которая формирует данное дерево, мысли о моей глупости, почему я согласился это сделать не покидали меня ,и когда я все же обнаружил данную функцию которая формирует дерево значений я обнаружил что она длиной в 3000 строк с хреном еще рекурсивная. Видя сей данный объем кода в 1С я задумался что на его разбор я убью весь день на его разбор. Вот и хочу спросить можно ли ,как нибудь вызвать данную процедуру ,которая стартует весь этот ад на стороне сервера?)
1 1Сергей
 
09.01.18
13:40
Читал и плакал. Пиши ещё!
2 Borteg
 
09.01.18
13:40
Браво
3 mehfk
 
09.01.18
13:43
&НаКлиенте
Процедура МояПроцедура()
ВызватьАдНаСторонеСервера();
КонецПроцедуры
4 elisey654321
 
09.01.18
13:44
(3) ДА если бы, она находится в модуле объекта другой формы
5 Dotoshin
 
09.01.18
13:46
(0), (4) Ну вынеси ее в общий модуль и вызывай этот ад откуда хочешь.
6 elisey654321
 
09.01.18
13:50
(5) Если это единственное решение пойду начну переносить код и параллельно искать книгу "Как не закончить жизнь самоубийством в первый рабочий день"
7 Dotoshin
 
09.01.18
13:51
(6) Нет не единственное, если хочется добавить экстрима себе и своим последователям, скопируй этот ад в модуль своей печатной формы.
8 Borteg
 
09.01.18
13:52
(6) ты определись сначала где это код находится, в модуле объекта, модуле формы? модуль объекта формы не существует
9 Borteg
 
09.01.18
13:53
(6) и тебе по задаче надо вывести только первый уровень? зачем тебе тогда дерево строить?
10 Borteg
 
09.01.18
13:55
(6) первый уровень это значит у него нету владельца(вышестоящей ветки) вот и сделай запрос к элемента у которых нету владельца.
11 elisey654321
 
09.01.18
14:02
(8) Сорян видимо уже из-за приближения нервного срыва на данной почве ошибся.Форма дерева формируется в модуле формы.
(9) Я думал и был уверен что дерево как массив начинается отсчет с нуля. Ну если это не так тогда нужен второй уровень. Для этого нужно получить конечно не все дерево но большую его часть ,обычно больше 4 уровней не встретишь.
12 Новиков
 
09.01.18
14:47
>>сделать печатную форму которая будет отображать первый уровень дерева

Если тебе нужен только первый уровень - зачем формировать все дерево? Там, наверное, из 3000 шоколадных строк, первый уровень формируется либо простым добавлением откуда-то из объекта/рс, либо одним проходом тела процедуры без рекурсии. Разберись уж, а потом занимайся рефакторингом. Может там обычный запрос, туда итог подставить и тебе хватит?

>>,а именно внедрение управляемых форм (что повлекло за собой не мало проблем).
Каких? А то жидковатенько как-то.
13 elisey654321
 
09.01.18
14:57
(12) вот именно что разбираясь в коде я обнаружил что в итоге он отсылает еще к одному справочнику который в себе хранит себе огромное количество соответствий.Которые нужно проверить друг с другом ,а иначе получается полная каша.

>>>>,а именно внедрение управляемых форм (что повлекло за собой не мало проблем).
>>Каких? А то жидковатенько как-то.
Я понимаю что пробелма самих программистов но все же. база после внедрения управляемых форм начала не померно расти и ни один из программистов не понимает почему именно это произошло,мол код хороший ваш отдел продаж много документов создает.
14 Fish
 
09.01.18
15:03
(13) "ваш отдел продаж много документов создает." - А много - это сколько в день?
15 elisey654321
 
09.01.18
15:16
(14) судя по конфигурации около 1500 заказов
16 Fish
 
09.01.18
15:18
(15) А до внедрения УФ сколько заводили?
17 Новиков
 
09.01.18
15:38
=)  Тут кажется, тонко. Форма - будь-то обычная, или управляемая, сама по себе не может стать причиной непомерно разрастающей, дающей метастазы, базы. Вариант один, чуваки, которые вояли, видимо изменили существенно бизнес-логику. Сделали так сказать, ревью.

ТС, а ты кто в этой конторе, или просто батрачишь на фрилансе-на франч? Как ты вообще залетел туда?
18 Fish
 
09.01.18
15:39
(17) Плавно подводишь ТС к совету "беги оттуда"? :))
19 elisey654321
 
09.01.18
15:49
(17) Да попросили помочь пока учусь помогаю всему кто просит)
Да объемы те же ,но вот база выросла с 1.5 гб до 20 гб после введения УФ.
20 alxxsssar
 
09.01.18
15:51
(19) это за какой период? Может какие-нибудь сканы стали подгружать чего раньше не делалось?
21 alxxsssar
 
09.01.18
15:52
(15) 1500 заказов не так уж и много
22 elisey654321
 
09.01.18
15:54
(20) За месяц -_- с их слов) Но при проверки размеров таблиц одной обработкой ,огромный вес указывает как раз на этот справочник с УФ.
23 Новиков
 
09.01.18
15:56
(22) уф ты тут не причем. Уф - это не более чем окно :)
24 alxxsssar
 
09.01.18
15:59
(23) так правильно ты писал - только не бизнес-логику всю поменяли, а при вводе УФ попутно какие-то новые реквизиты сделали типа хранилищ значения или чего-то и какие-то картинки стали в справочники подгружать и тупо на форму выдавать. Это как вариант. Сканы очень способствуют росту базы.
25 elisey654321
 
09.01.18
16:02
(24) НУ возможно и не мое это дело) я только печатную форму делаю) Спасибо за советы. А я уже почти закончил осталось не так много)