Имя: Пароль:
1C
1С v8
Структурированная калькуляция - как сделать вложенные запросы
,
0 aspirant
 
22.08.12
15:32
Подскажите пожалуйста (кто делал) - как в СКД сделать многоуровневый (вложенный) запрос для получения следующего вида информации:

Уровень 1: Колбаса Московская
Уровень 2:      Колбаса до упаковки
Уровень 3:            Фарш
Уровень 4:                  Мясо Говядины
Уровень 4:                  Мясо Свинины
Уровень 4:                  Соль
Уровень 3:            Оболочка
Уровень 3:            Шпагат
Уровень 2:      Пленка
Уровень 2:      Этикетка


При этом количество вложенных уровней заранее неизвестно. Фактически мне нужно отразить сырьевой состав переделов. Может быть, коряво выразился, но готов пояснить! Отзовитесь, кто делал, куда смотреть?
1 1C-band
 
22.08.12
15:33
Иерархия элементов в отчёте соответствует иерархии справочника"Номенклатура"?
2 aspirant
 
22.08.12
15:33
Хотя переделов не более 5, может быть тогда создать просто 5 вложенных запросов. Наверное, с технологической точки программирования, будет не корректно.
3 aspirant
 
22.08.12
15:33
(1) нет
4 1C-band
 
22.08.12
15:34
(3) Тогда предлагаю поизощряьтся с группировками на последней закладке СКД.
5 aspirant
 
22.08.12
15:35
1. Сырье
       1. Мясо
       2. Специи
       3. Оболочки
       4. Расходники
2. Фарши
3. Сырая продукция
4. Товарная продукция (прайс)
6 1C-band
 
22.08.12
15:35
(3) Либо сделать какой-нибудь справочник со структурой, соответствующей иерархии элементов в твоём отчёте, и использовать иерархию по нему.
7 aspirant
 
22.08.12
15:37
Заранее создавать жесткую структуру не очень хочу. Ассортимент большой, технологии производства деликатесов и колбасы разный - сопровождать потом еще и справочник структур нет пока желания. Только если безысходность.
8 Segate
 
22.08.12
15:39
(0)1)Группировки в запросе делаешь, необходимые.
2)Запрос.выполнить().выбрать(ОбходРезультатаЗапроса.поГруппировкам)
3)В цикле обращаться к результату запроса через ВыборкаИзРезультата.следующий()
4)ВыборкаИзРезультата.уровень()
5) в зависимости от уровня выводишь соответствующую строку макета
6)...
7)PROFIT
9 shuhard
 
22.08.12
15:39
(0) делать разузлование на СКД - бредовая затея

а готовый отчет легко увидеть в конструкторе спецификаций
10 DrShad
 
22.08.12
15:40
(7) что уже делал выкладывай
(8) клюшечник?
11 Segate
 
22.08.12
15:40
Точно не помню как делать, но принцип именно такой.
(10)не, я на 8ке таким образом извращался )))
12 Segate
 
22.08.12
15:42
(0)там проблема с обработкой уровня... я делал через Если... ИначеЕсли... но это было так давно...
13 Segate
 
22.08.12
15:44
Ах да! Чуть не забыл самое главное!


ТабличныйДокумент.НачатьАвтогруппировкуСтрок();
14 DrShad
 
22.08.12
15:44
(11) я ж и говорю что клюшечник
15 aspirant
 
22.08.12
15:47
(9)(10) Таки зашли в мою тему, ура!
16 shuhard
 
22.08.12
15:51
(15) напомни, когда и за что, ты был нами далеко послан ?
17 aspirant
 
22.08.12
15:56
(16) да не припомню такого, просто искренне рад что щас будут дельные советы (без подколов)
18 aspirant
 
22.08.12
15:57
(10) да ничего толком. пока пытаюсь мыслить.
19 shuhard
 
22.08.12
16:00
(17)[ щас будут дельные советы (без подколов)]
бу га га
20 DrShad
 
22.08.12
16:01
(18) ну вот когда что-то нафеячишь тогда и поговорим
21 aspirant
 
22.08.12
16:03
(20) уже струячу
22 Segate
 
22.08.12
16:03
(18)я же тебе расписал как надо делать. не? )
23 aspirant
 
22.08.12
16:03
(19) а тебе в личку буду струячить....
24 aspirant
 
22.08.12
16:04
(22) мне понравилась идея. Взял на заметку, спасибо! Но я пока без кодинга попробую. Ленивый же.
25 ДемонМаксвелла
 
22.08.12
16:06
иерархический спуск в СКД, иерархия детальных записей.
26 Segate
 
22.08.12
16:06
(24) без кодинга и скд? ))) Ну хзхз...
27 1C-band
 
22.08.12
16:07
(25) Я предлагал справочник в (6), но такой подход показался ТС "жёсткиой структурой". ))
28 aspirant
 
22.08.12
16:10
(27) и (25) может я не правильно понял, но вроде разные подходы.
Принцип как (9) написал, но мне надо в отчете, чтоб в горизонт развернуть Даты выпуска продукции (разные рецептуры) - и экономисты будут проводить горизонтальный анализ изменения себестоимости.
29 ДемонМаксвелла
 
22.08.12
16:12
(27) я не имею в виду справочник. таблица с колонками Продукция/Затрата/Стоимость и т.д затраты получается из регистров. Но тут есть проблема с остатками полуфабрикатов на начало месяца. Для их разузлования придется либо прошлые месяцы лопатить (по регистру учет затрат например), либо хранить разузлование в своем регистре.
30 DrShad
 
22.08.12
16:18
(27) в (6) просто дикий ужас, с которым как-то нужно будет жить
31 aspirant
 
22.08.12
16:19
(29) Во. верно. Ну мне не страшно - у меня каждый вид продукции и полуфабрикаты производятся каждый день. Поэтому мне не страшно. Не правильно конечно, но пусть это будет маленьким допущением.
32 aspirant
 
22.08.12
16:23
короче я ничего лучше 5-ти вложенных запросов в СКД не придумал...
33 DrShad
 
22.08.12
16:26
(32) удачи
34 shuhard
 
22.08.12
16:27
(28)[и экономисты будут проводить горизонтальный анализ изменения себестоимости.]
для этого разузлование то не нужно, совсем

есть Анализ плановой себестоимости и правильные экономисты работают с калькуляцией
35 aspirant
 
22.08.12
16:36
(34) ну давайте про правильных экономистов не будем - все равно ничего конкретного не достигнем.

А по поводу нужно/не нужно, если Вы не будете делать разузлование, дальше отклонения Вы не уйдете, а есть еще структурный анализ, факторный анализ и много чего еще. Ну и как без "разузлования"?  Может новый метод есть?
36 shuhard
 
22.08.12
16:37
(35) сам это набор букв придумал или кто-то на заводике ?
37 aspirant
 
22.08.12
16:39
(36) да как бэ опыт небольшой (5 лет) экономистом
38 DrShad
 
22.08.12
16:40
(37) экономисты нам не друзья
39 aspirant
 
22.08.12
16:40
(36) ну и как бы не хвалюсь, но чтоб снять вопросы в т.ч. директором по экономике, поэтому немного знаю о чем говорю.
40 aspirant
 
22.08.12
16:41
(38) да ну?
41 DrShad
 
22.08.12
16:43
(40) ни один экономист еще ничего дельного не привнес для разработки в системе
42 aspirant
 
22.08.12
16:43
(41) у меня есть шансы? или только надежда?
43 DrShad
 
22.08.12
16:46
(42)пока нет
44 shuhard
 
22.08.12
16:48
(42) судя по реплике в (35) и попытке управлять себестоимостью пост-фактум, шансов у тебя нет

а по УПП + РАУЗ, есть документ Расчёт плановой себестоимости, который прекрасно разузловывает и даёт полную материальную расценненую спецификацию

и именно от него и от плановой себестоимости идёт работа
45 aspirant
 
22.08.12
16:50
(44) да с этим то проблем нет, как ты не поймешь, есть проблема разузловать фактическую себестоимость.
46 shuhard
 
22.08.12
16:53
(45) а на разных переделах у тебя разные рубли ?
47 aspirant
 
22.08.12
16:56
(46) конец дня, не понял вопроса
48 DrShad
 
22.08.12
17:01
(47) а говоришь экономист...
49 aspirant
 
22.08.12
17:02
(48) да вот с "разными рублями" не работал никогда. Опыт маловат - получается...
50 shuhard
 
22.08.12
17:02
(47) не важно из чего сделан полуфабрикат, важно сколько он стоит
51 DrShad
 
22.08.12
17:04
(49) а тебе разве кто-то сказал что они разные?
52 Анцеранана
 
22.08.12
17:14
(13) а вот этого точно не надо...)))
Лучше НачатьГруппуСтрок(<Имя группы>, <Открыта ли группа>)
ЗакончитьГруппуСтрок()

Мало ли чо захочется буху, шоб открыто было или закрыто.
53 aspirant
 
22.08.12
17:17
(51) в (46) товарищ говорит о разных рублях. Я не понимаю.
54 Анцеранана
 
22.08.12
17:18
(0) + OFF: молодец конечно что вкуриваешь во вложенные запросы, просто помнится еще Больсунов писал, что временнные таблицы работают в 3 раза быстрее.
55 aspirant
 
22.08.12
17:18
(52) бухи здесь не при чем. Бухам важна только стоимость, как в (50)
56 aspirant
 
22.08.12
17:19
(54) да я бы рад вкурить и временные таблицы, тока про них я вообще ничего не знаю.
57 Анцеранана
 
22.08.12
17:48
(0) Короче посмотрел я как в нашей конфе сделано,ровно так как говорили в (6) , похоже от этого не уйти...
У нас так сделано

Справочник "комплекты", несколько уровней + табличная часть в которой один из реквизитов - номенклатура,

только у нас кондиционеры а не мясо...документы тоже под это дело исправлены (чтоб можно было продавать комплект)...
58 aspirant
 
22.08.12
17:52
(57) Ну как вариант конечно. У меня рецептуры каждый день меняются только. Задолбаются они править комплекты.
59 polymorph
 
22.08.12
18:00
(58) или можно отбросить религиозные предрассудки по поводу абсолютности СКД и перебирать результат запроса с заполнением табдока кодом.
60 Анцеранана
 
22.08.12
18:08
(59) у него напомню своя собственная иерархия, где-то она должна быть отражена, а дальше пусть перебирает если ему так удобно.

(56) Привожу пример отличия вложенного запроса от временной таблицы. (пример фейковый, на самом деле там ни то ни другое не нужно и без параметров)

Влож. запрос:

ВЫБРАТЬ
   Кассы.Ссылка,
   ВложенныйЗапрос.Курс
ИЗ
   Справочник.Кассы КАК Кассы
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           КурсыВалютСрезПоследних.Курс КАК Курс,
           КурсыВалютСрезПоследних.Валюта КАК Валюта
       ИЗ
           РегистрСведений.КурсыВалют.СрезПоследних(, ) КАК КурсыВалютСрезПоследних) КАК ВложенныйЗапрос
       ПО Кассы.ВалютаКассы = ВложенныйЗапрос.Валюта

Врем. таблица:

ВЫБРАТЬ
   КурсыВалютСрезПоследних.Валюта,
   КурсыВалютСрезПоследних.Курс
ПОМЕСТИТЬ ВременнаяТаблица
ИЗ
   РегистрСведений.КурсыВалют.СрезПоследних КАК КурсыВалютСрезПоследних
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Кассы.Ссылка,
   ВременнаяТаблица.Курс
ИЗ
   Справочник.Кассы КАК Кассы
       ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблица КАК ВременнаяТаблица
       ПО Кассы.ВалютаКассы = ВременнаяТаблица.Валюта

те же яйцы, но предпочтительнее...далее кури конструктор запроса и пробуй сам...
61 Анцеранана
 
22.08.12
18:20
(58) тогда к справочнику сделай документ, который будет прописывать данные в периодический регистр сведений. Измерение - номенклатура (фарш), ресурс - номенклатура (мясо говядины, свинины, соль)... На один рецепт - 1 документ соответственно.
В шапке выбираешь ентот фарш, подтягиваются в т.ч данные из регистра, меняешь т.ч. записываешь в регистр...

Криво конечно, но прикольно.)
62 Анцеранана
 
22.08.12
18:25
+(61) тогда т.ч. в справочнике комплекты (они же рецепты) уже не нужна...
а в регистре видим:

19.08.12 Фарш Мясо  Рецепт №773335 от 19.08.2012
19.08.12 Фарш Соль  Рецепт №773335 от 19.08.2012
20.08.12 Фарш Пёсик рецепт №773336 от 19.08.2012

как-то так...
63 polymorph
 
22.08.12
18:48
(60) собственная иерархия не обязательно должна быть где то отражена. ее можно алгоритмически создавать для каждой выборки.
64 ДемонМаксвелла
 
22.08.12
21:02
(0) был на этом форуме и на Инфостарте некий Ish_2, он же Игорь Исхаков. Он эту проблему решал. и выкладывал свою обработку СтруктураЗатрат. Так что, советую поискать.
65 Лоботряс
 
22.08.12
22:01
Когда-то делал на СКД отчет по "бесконечной" иерархии (по регистру с измерениями: Родитель, Элемент). Вникал как на СКД работает построение собственной иерархии достаточно долго.
66 Анцеранана
 
23.08.12
10:55
(63) Можно, вот только по каким признакам.. Как определить, что мясо это сегодня часть фарша, а завтра уже нет , а соль входит состав чего угодно. Алгоритм слишком запутанный получается и сложно модифицируемый.

+(62) посмотрел внимательно как у нас комплекты сделаны в справочнике (без регистра и всего прочего).

Добавлен флаг "Использование" в табличную часть (флажок). История по составу нигде не хранится, но в расходных документах отражается из чего состоял комплект.. Как-то так...
67 aspirant
 
23.08.12
11:00
(66) А в расходные доки состав откуда попадает?
68 Анцеранана
 
24.08.12
09:46
(67) Там есть кнопка "Добавить комплект". Организован "подбор" из справочника "комплекты". Даже более того: при выборе комплекта еще и окошко выводится, в котором можно менять состав выбираемых в документ позиций , чтобы в справочник не лезть...
В табличной части "основной блок" при этом подсвечивается зеленым..(ну это тебе не надо)... И еще есть колонка Комплект в т.ч.
69 Анцеранана
 
24.08.12
10:02
+(68) тут уже куришь тему "Подбор", предопределенные процедуры Выбор , ОбработкаВыбора , подробно объяснять не буду, ушли от темы )))
70 Лоботряс
 
24.08.12
10:04
все-таки посоветую еще раз автору прочитать "Разработку сложных отчетов" Хрусталевой стр 323.
71 ILM
 
гуру
24.08.12
10:13
ТС, глянь такими категориями. Тогда взлетит и в СКД.

Элемент, ВходитВЭлемент, УровеньВхода, Полуфабрикат, УровеньВПолуфабрикате (ну и спецификациями сбрызнуть по-вкусу).
72 ILM
 
гуру
24.08.12
10:14
При сохранении спецификации идет подписка и формируется регистр состава.
Закон Брукера: Даже маленькая практика стоит большой теории.