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


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

Работа с деревом в 1с.

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

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

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

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

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует