Имя: Пароль:
1C
1С v8
Отчет по спецификациям
,
0 RShurik
 
18.04.14
17:46
Мне нужно сфрмировать отчет, по спецификациям номенклатуры, как это можно сделать ?
1 Wobland
 
18.04.14
17:47
записывай: трах-тибидох, ляськи-масяськи...
2 МойКодУныл
 
18.04.14
17:50
(0) Приобрести конфигурацию 1С, где это возможно,
установить,
заполнить данными,
сформировать одноименный отчет\форму
3 Wobland
 
18.04.14
17:51
заполнять данными необязательно
4 neo_matrix_123
 
18.04.14
17:51
в стыковке с чем-нибудь, с материалами в производстве, потребностью по заказам на производство, незавершенкой? или просто по спецификациям? так это просто. выборка из таб.частей спецификаций. есть универсальный отчет по метаданным. выборка из справочника с указанием таб. части. если нужно выбрать по спецификациям все таб. части - есть консоль запросов. тоже в пользовательском режиме работает.
5 Wobland
 
18.04.14
17:52
(3) да и 1Ска особо не впилась..
6 МойКодУныл
 
18.04.14
17:56
(5) Тема то v8, значит 1С=)
7 Wobland
 
18.04.14
17:57
(6) ну, мож, промахнулся человек ;)
8 RShurik
 
18.04.14
23:30
нет не промахнулся
9 RShurik
 
18.04.14
23:34
да просто по спецификациям,но каждая спецификация может иметь свою спецификацию и уровень вложенности ,заранее не известен,
это реализуется в СКД?, а универсальный отчет не совсем подходит
10 neo_matrix_123
 
19.04.14
00:25
есть проца. надо указывать уровень вложенности или задать максимальный. на выходе будет линейный список. устроит? тогда щас сброшу
11 neo_matrix_123
 
19.04.14
00:27
количества по одной и той-же номенклатуре суммируются, разумеется ;-).
12 neo_matrix_123
 
19.04.14
01:12
Процедура ЗаполнитьМатериалыПоСпецификации(ТабличнаяЧасть, ИмяТабличнойЧасти, ФормаДок) Экспорт
    
    ТаблицаИсходныеКомплектующие = ТабличнаяЧасть.Выгрузить();
    
    Параметры = Новый Структура("ПараметрыВыпуска, КоличествоУровнейРазузлования, ДатаСпецификации");
    
            
        РезультатРазузлования = Новый Структура("ИсходныеКомплектующие");
        СтруктураИсточник = Новый Структура;//("Номенклатура, ХарактеристикаНоменклатуры, ЕдиницаИзмерения, Коэффициент, Количество, Спецификация");

        //***Здесь сформировать строку по данным из формы обработки
        СтруктураИсточник.Вставить("Номенклатура", Номенклатура);
        СтруктураИсточник.Вставить("ХарактеристикаНоменклатуры", ХарактеристикаН);
        СтруктураИсточник.Вставить("ЕдиницаИзмерения", ЕдИзмерения);
        СтруктураИсточник.Вставить("Коэффициент", 1);
        СтруктураИсточник.Вставить("Количество", КоличествоФ);
        СтруктураИсточник.Вставить("Спецификация", Спецификация);
        
        ПараметрыВыпуска = Новый Соответствие;
        
        Параметры.ПараметрыВыпуска = ПараметрыВыпуска;
        
        Если Разузловка < 1 Тогда
            Параметры.КоличествоУровнейРазузлования = 1;
        Иначе
            Параметры.КоличествоУровнейРазузлования = Разузловка;
        КонецЕсли;
        Параметры.ДатаСпецификации = ФормаДок.Дата;
        
        МассивОшибок = РазузлованиеНоменклатуры.РазузловатьНоменклатуру(СтруктураИсточник, РезультатРазузлования, Параметры);
        
        Если МассивОшибок.Количество() > 0 Тогда
            
            Для каждого Ошибка из МассивОшибок Цикл
                
                ОбщегоНазначения.Сообщение("Ошибка: " + Ошибка.Причина, Ошибка.СтатусОшибки);
                ОбщегоНазначения.Сообщение(" Спецификация: " + Ошибка.Спецификация);
                ОбщегоНазначения.Сообщение(" Номер строки: " + Ошибка.НомерСтроки);
                ОбщегоНазначения.Сообщение(" Описание ошибки: " + Ошибка.ОписаниеОшибки);
                
            КонецЦикла;
            
        КонецЕсли;
        
        ИсходныеКомплектующие = РезультатРазузлования.ИсходныеКомплектующие;
        
        Табличка =  Новый ТаблицаЗначений;
        
        ИсходныеКомплектующие.Сортировать("ВидВоспроизводства");
        
        ИсходныеКомплектующие.ЗаполнитьЗначения(ФормаДок.Подразделение, "Подразделение");
        //заполним подразделение по основной спецификации полуфабрикатов
        Для каждого Строка из ИсходныеКомплектующие цикл
            ПодразделениеНоменклатуры = ЗаказыНаПроизводствоИПереработку.ПолучитьПодразделениеИзСпецификации(Строка.Спецификация,Строка.Номенклатура,Строка.ХарактеристикаНоменклатуры);
            Если ЗначениеЗаполнено(ПодразделениеНоменклатуры) Тогда
                Строка.Подразделение = ПодразделениеНоменклатуры;
            КонецЕсли;
            
            
        КонецЦикла;
        
        ИсходныеКомплектующие.Колонки.Добавить("Продукция");
        ИсходныеКомплектующие.Колонки.Добавить("ХарактеристикаПродукции");
        
        ИсходныеКомплектующие.ЗаполнитьЗначения(Номенклатура, "Продукция");
        ИсходныеКомплектующие.ЗаполнитьЗначения(ХарактеристикаН, "ХарактеристикаПродукции");
        ИсходныеКомплектующие.ЗаполнитьЗначения(Спецификация, "Спецификация");
        
        ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ИсходныеКомплектующие, ТаблицаИсходныеКомплектующие);
        
    ТаблицаИсходныеКомплектующие.Свернуть("Номенклатура, ХарактеристикаНоменклатуры, ЕдиницаИзмерения, Коэффициент", "Количество");

    
    //********
    Табличка =  Новый ТаблицаЗначений;
    
    Табличка = ТаблицаИсходныеКомплектующие.Скопировать();
    
    
    Если ((СПФ = ЛОЖЬ) ИЛИ (Разузловка > 1))Тогда
    Для Каждого Строка Из ТаблицаИсходныеКомплектующие Цикл
        ВидПроизводства = Строка.Номенклатура.ВидВоспроизводства;
        Если Не (ВидПроизводства = Перечисления.ВидыВоспроизводстваНоменклатуры.Закупка) Тогда
            НоменклатураСтр = Строка.Номенклатура;
            СтрокаТаб = Табличка.Найти(НоменклатураСтр, "Номенклатура");
            Табличка.Удалить(СтрокаТаб);
        КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    ТаблицаИсходныеКомплектующие.Очистить();
    ТаблицаИсходныеКомплектующие = Табличка.Скопировать();    
    
    //********
13 neo_matrix_123
 
19.04.14
01:18
на скд, конечно, мона попробоват..... но лучше это сразу к конфе ерп 2.0. поковыряю на досуге...
14 zak555
 
19.04.14
08:24
(2) зачем её приобретать ?
15 Wobland
 
19.04.14
08:24
(9) имхается мне, СКД рекурсию не осилит
16 neo_matrix_123
 
19.04.14
14:38
код-то помог? или надо отчет принципиально на скд?
17 neo_matrix_123
 
19.04.14
15:06
вот еще такое есть...

// Процедура - обработчик нажатия на кнопку "Заполнить дерево спецификаций".
//
Процедура КоманднаяПанельЗаполнитьДеревоСпецификаций(Кнопка)
        
    ЗаполнитьДеревоСпецификаций();
    
КонецПроцедуры // КоманднаяПанельЗаполнитьДеревоСпецификаций()

Процедура ЗаполнитьДеревоСпецификаций()
    
    // Проверка заполнения ключевых полей
    Если НЕ ЗначениеЗаполнено(Продукция) Тогда
        Сообщить("Поле ""Номенклатура"" не заполнено");
        Возврат;
    КонецЕсли;
    
    Если НЕ ЗначениеЗаполнено(СпецификацияПродукции) Тогда
        Сообщить("Поле ""Спецификация"" не заполнено");
        Возврат;
    КонецЕсли;
    
    ДеревоСпецификаций.Строки.Очистить();
    
    // Добавим в первую строку продукцию.
    СтрокаПродукции = ДеревоСпецификаций.Строки.Добавить();
    СтрокаПродукции.ВидСтроки = Перечисления.ВидыСтрокДереваСпецификаций.КонечнаяПродукция;
    СтрокаПродукции.Номенклатура = Продукция;
    СтрокаПродукции.ХарактеристикаНоменклатуры = ХарактеристикаПродукции;
    СтрокаПродукции.ВидНоменклатуры = Продукция.ВидНоменклатуры;
    
    // Определим спецификацию по умолчанию и добавим подчиненную строку.
    СтрокаПродукции.Спецификация = СпецификацияПродукции;
    
    Если НЕ ЗначениеЗаполнено(СпецификацияПродукции) Тогда
        Возврат;
    КонецЕсли;
    
    СтруктураПоиска = Новый Структура;
    СтруктураПоиска.Очистить();
    СтруктураПоиска.Вставить("Номенклатура",                 Продукция);
    СтруктураПоиска.Вставить("ХарактеристикаНоменклатуры",     ХарактеристикаПродукции);
        
    МассивСтрок = СпецификацияПродукции.ВыходныеИзделия.НайтиСтроки(СтруктураПоиска);
    Если МассивСтрок.Количество() > 0 Тогда
        СтрокаВыходногоИзделия = МассивСтрок[0];
        СтрокаПродукции.Количество = СтрокаВыходногоИзделия.Количество;
        СтрокаПродукции.ЕдиницаИзмерения = СтрокаВыходногоИзделия.ЕдиницаИзмерения;
    КонецЕсли;
    
    ЗаполнитьСтрокиДереваСпецификаций(СтрокаПродукции);
    
КонецПроцедуры // ЗаполнитьДеревоСпецификаций()

Процедура ЗаполнитьСтрокиДереваСпецификаций(
    СтрокаСпецификации,
    ТаблицаНоменклатуры = Неопределено) Экспорт
    
    Если СтрокаСпецификации = Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    Если СтрокаСпецификации.ВидСтроки = Перечисления.ВидыСтрокДереваСпецификаций.ИсходныеКомплектующие
        ИЛИ СтрокаСпецификации.ВидСтроки = Перечисления.ВидыСтрокДереваСпецификаций.ВыходныеИзделия
        ИЛИ СтрокаСпецификации.ВидСтроки = Перечисления.ВидыСтрокДереваСпецификаций.ВозвратныеОтходы Тогда
        Спецификация = СтрокаСпецификации.Родитель.ОсновнаяСпецификация;
    Иначе
        Если ТипЗнч(СтрокаСпецификации.Номенклатура) = Тип("СправочникСсылка.СпецификацииНоменклатуры") Тогда
            Спецификация = СтрокаСпецификации.Номенклатура;
        Иначе
            Спецификация = СтрокаСпецификации.Спецификация;
        КонецЕсли;
    КонецЕсли;
    
    СтрокаСпецификации.Строки.Очистить();
    
    Если ТаблицаНоменклатуры = Неопределено Тогда
        ТаблицаНоменклатуры = Новый ТаблицаЗначений;
        ТаблицаНоменклатуры.Колонки.Добавить("Номенклатура");
        ТаблицаНоменклатуры.Колонки.Добавить("ХарактеристикаНоменклатуры");
        ТаблицаНоменклатуры.Колонки.Добавить("Спецификация");
    КонецЕсли;
    
    СтруктураПоиска = Новый Структура;
    
    СтрокаРодитель = СтрокаСпецификации;
    
    ИсходныеКомплектующие = Спецификация.ИсходныеКомплектующие;
    Для Каждого Строка Из ИсходныеКомплектующие Цикл
        
        Если Строка.ВидНорматива = Перечисления.ВидыНормативовНоменклатуры.Номенклатура
            ИЛИ Строка.ВидНорматива = Перечисления.ВидыНормативовНоменклатуры.АвтоподборНоменклатуры Тогда
            
            Если НЕ ЗначениеЗаполнено(Строка.Спецификация) Тогда
                СпецификацияНоменклатуры = УправлениеПроизводством.ОпределитьСпецификациюПоУмолчанию(Строка.Номенклатура, Строка.ХарактеристикаНоменклатуры, ТекущаяДата());
            Иначе
                СпецификацияНоменклатуры = Строка.Спецификация;
            КонецЕсли;
            
            ТаблицаДляОпределенияАналогов = Новый ТаблицаЗначений();
            ТаблицаДляОпределенияАналогов.Колонки.Добавить("Номенклатура");                 
            ТаблицаДляОпределенияАналогов.Колонки.Добавить("ХарактеристикаНоменклатуры");
            ТаблицаДляОпределенияАналогов.Колонки.Добавить("Количество");                 
            ТаблицаДляОпределенияАналогов.Колонки.Добавить("Коэффициент");
            ТаблицаДляОпределенияАналогов.Колонки.Добавить("ЕдиницаИзмерения");
            ТаблицаДляОпределенияАналогов.Колонки.Добавить("Продукция");
            ТаблицаДляОпределенияАналогов.Колонки.Добавить("ХарактеристикаПродукции");
            ТаблицаДляОпределенияАналогов.Колонки.Добавить("Спецификация");
            
            НоваяСтрока = ТаблицаДляОпределенияАналогов.Добавить();
            НоваяСтрока.Номенклатура = Строка.Номенклатура;
            НоваяСтрока.ХарактеристикаНоменклатуры = Строка.ХарактеристикаНоменклатуры;
            НоваяСтрока.Количество = Строка.Количество;
            НоваяСтрока.Коэффициент = Строка.ЕдиницаИзмерения.Коэффициент;
            НоваяСтрока.ЕдиницаИзмерения = Строка.ЕдиницаИзмерения;
            
            ТаблицаАналогов = УправлениеПланированием.ПолучитьАналогиНоменклатуры(ТаблицаДляОпределенияАналогов, Истина);
            
            Если ЗначениеЗаполнено(СпецификацияНоменклатуры) ИЛИ ТаблицаАналогов.Количество() > 0 Тогда
                
                НоваяСтрока = СтрокаРодитель.Строки.Добавить();
                НоваяСтрока.НомерСтроки = Строка.НомерСтроки;
                НоваяСтрока.ЭтоАналог = Ложь;
                НоваяСтрока.ПозицияПоСпецификации    = Строка.ПозицияПоСпецификации;
                НоваяСтрока.НомерОперацииМаршрута = Строка.НомерОперацииМаршрута;
                Если Строка.ВидНорматива = Перечисления.ВидыНормативовНоменклатуры.Номенклатура
                    ИЛИ Строка.ВидНорматива = Перечисления.ВидыНормативовНоменклатуры.АвтоподборНоменклатуры
                    ИЛИ Строка.ВидНорматива = Перечисления.ВидыНормативовНоменклатуры.АвтоподборХарактеристики Тогда
                    НоваяСтрока.ВидСтроки               = Перечисления.ВидыСтрокДереваСпецификаций.Номенклатура;
                ИначеЕсли Строка.ВидНорматива = Перечисления.ВидыНормативовНоменклатуры.Узел Тогда
                    НоваяСтрока.ВидСтроки               = Перечисления.ВидыСтрокДереваСпецификаций.Узел;
                Иначе
                    Если ТипЗнч(Строка.Номенклатура) = Тип("СправочникСсылка.Номенклатура") Тогда
                        НоваяСтрока.ВидСтроки               = Перечисления.ВидыСтрокДереваСпецификаций.Номенклатура;
                    ИначеЕсли ТипЗнч(Строка.Номенклатура) = Тип("СправочникСсылка.НоменклатурныеУзлы") Тогда
                        НоваяСтрока.ВидСтроки               = Перечисления.ВидыСтрокДереваСпецификаций.Узел;
                    КонецЕсли;
                КонецЕсли;
                НоваяСтрока.ВидНорматива                = Строка.ВидНорматива;
                НоваяСтрока.Номенклатура                = Строка.Номенклатура;
                НоваяСтрока.ХарактеристикаНоменклатуры     = Строка.ХарактеристикаНоменклатуры;
                НоваяСтрока.Количество                    = Строка.Количество;
                НоваяСтрока.КоличествоПоСпецификации    = Строка.Количество;
                НоваяСтрока.ЕдиницаИзмерения            = Строка.ЕдиницаИзмерения;
                НоваяСтрока.СтатьяЗатрат                = Строка.СтатьяЗатрат;
                
                НоваяСтрока.ВидВоспроизводства            = Строка.ВидВоспроизводства;
                
                Если ТипЗнч(Строка.Номенклатура) = Тип("СправочникСсылка.Номенклатура") Тогда
                    НоваяСтрока.ВидНоменклатуры = Строка.Номенклатура.ВидНоменклатуры;
                КонецЕсли;
                
                НоваяСтрока.Спецификация = СпецификацияНоменклатуры;
                
            КонецЕсли;
            
            Если НЕ ЗначениеЗаполнено(СпецификацияНоменклатуры) Тогда
            Для Каждого СтрокаАналогов Из ТаблицаАналогов Цикл
                
                НоваяСтрокаАналогов = НоваяСтрока.Строки.Добавить();
                НоваяСтрокаАналогов.НомерСтроки = Строка.НомерСтроки;
                НоваяСтрокаАналогов.ЭтоАналог = Истина;
                НоваяСтрокаАналогов.СтатьяЗатрат = НоваяСтрока.СтатьяЗатрат;
                НоваяСтрокаАналогов.ПозицияПоСпецификации = НоваяСтрока.ПозицияПоСпецификации;
                НоваяСтрокаАналогов.НомерОперацииМаршрута = НоваяСтрока.НомерОперацииМаршрута;
                НоваяСтрокаАналогов.ВидНорматива = Перечисления.ВидыНормативовНоменклатуры.Номенклатура;
                НоваяСтрокаАналогов.ВидСтроки               = Перечисления.ВидыСтрокДереваСпецификаций.Номенклатура;
                НоваяСтрокаАналогов.ВидВоспроизводства            = Строка.ВидВоспроизводства;
                
                НоваяСтрокаАналогов.ВидНоменклатуры = СтрокаАналогов.Номенклатура.ВидНоменклатуры;
                НоваяСтрокаАналогов.Приоритет = СтрокаАналогов.Приоритет;
                НоваяСтрокаАналогов.Номенклатура = СтрокаАналогов.Аналог;
                НоваяСтрокаАналогов.ХарактеристикаНоменклатуры = СтрокаАналогов.ХарактеристикаАналога;
                НоваяСтрокаАналогов.ЕдиницаИзмерения = СтрокаАналогов.ЕдиницаИзмеренияАналога;
                
                Если СтрокаАналогов.Количество = 0 ИЛИ СтрокаАналогов.КоличествоАналога = 0 Тогда
                    НоваяСтрокаАналогов.Коэффициент = 1;
                Иначе
                    НоваяСтрокаАналогов.Коэффициент = СтрокаАналогов.КоличествоАналога / СтрокаАналогов.Количество;
                КонецЕсли;
                
                Если ТипЗнч(СтрокаАналогов.Аналог) = Тип("СправочникСсылка.НоменклатурныеУзлы") Тогда
                    Для Каждого КомплектующаяАналогаУзла Из СтрокаАналогов.Аналог.ИсходныеКомплектующие Цикл
                        
                        Если КомплектующаяАналогаУзла.ВидНорматива = Перечисления.ВидыНормативовНоменклатуры.Номенклатура Тогда
                            НоваяСтрокаАналогаУзла = НоваяСтрокаАналогов.Строки.Добавить();
                            
                            НоваяСтрокаАналогаУзла.НомерСтроки = СтрокаАналогов.НомерСтроки;
                            НоваяСтрокаАналогаУзла.ЭтоАналог = Истина;
                            НоваяСтрокаАналогаУзла.СтатьяЗатрат = СтрокаАналогов.СтатьяЗатрат;
                            НоваяСтрокаАналогаУзла.ПозицияПоСпецификации = СтрокаАналогов.ПозицияПоСпецификации;
                            НоваяСтрокаАналогаУзла.НомерОперацииМаршрута = СтрокаАналогов.НомерОперацииМаршрута;
                            НоваяСтрокаАналогаУзла.ВидНорматива = Перечисления.ВидыНормативовНоменклатуры.Номенклатура;
                            НоваяСтрокаАналогаУзла.ВидСтроки               = Перечисления.ВидыСтрокДереваСпецификаций.Номенклатура;
                            НоваяСтрокаАналогаУзла.ВидВоспроизводства            = СтрокаАналогов.ВидВоспроизводства;
                            
                            НоваяСтрокаАналогаУзла.ВидНоменклатуры = КомплектующаяАналогаУзла.Номенклатура.ВидНоменклатуры;
                            
                            НоваяСтрокаАналогаУзла.Приоритет = СтрокаАналогов.Приоритет;
                            НоваяСтрокаАналогаУзла.Номенклатура = КомплектующаяАналогаУзла.Номенклатура;
                            НоваяСтрокаАналогаУзла.ХарактеристикаНоменклатуры = КомплектующаяАналогаУзла.ХарактеристикаНоменклатуры;
                            НоваяСтрокаАналогаУзла.ЕдиницаИзмерения = КомплектующаяАналогаУзла.ЕдиницаИзмерения;
                            
                            Если КомплектующаяАналогаУзла.Количество = 0 ИЛИ КомплектующаяАналогаУзла.КоличествоАналога = 0 Тогда
                                НоваяСтрокаАналогаУзла.Коэффициент = 1;
                            Иначе
                                НоваяСтрокаАналогаУзла.Коэффициент = КомплектующаяАналогаУзла.КоличествоАналога / КомплектующаяАналогаУзла.Количество;
                            КонецЕсли;
                            
                        КонецЕсли;
                        
                    КонецЦикла;
                КонецЕсли;
                
            КонецЦикла;
            КонецЕсли;
            
            Если ЗначениеЗаполнено(СпецификацияНоменклатуры) Тогда
                
                СтруктураПоиска.Очистить();
                СтруктураПоиска.Вставить("Номенклатура",                Строка.Номенклатура);
                СтруктураПоиска.Вставить("ХарактеристикаНоменклатуры", Строка.ХарактеристикаНоменклатуры);
                СтруктураПоиска.Вставить("Спецификация",        СпецификацияНоменклатуры);
                
                Строки = ТаблицаНоменклатуры.НайтиСтроки(СтруктураПоиска);
                Если Строки.Количество() > 0 Тогда
                    Продолжить;
                КонецЕсли;
                
                НоваяСтрокаТаблицы = ТаблицаНоменклатуры.Добавить();                
                НоваяСтрокаТаблицы.Номенклатура               = Строка.Номенклатура;
                НоваяСтрокаТаблицы.ХарактеристикаНоменклатуры = Строка.ХарактеристикаНоменклатуры;
                НоваяСтрокаТаблицы.Спецификация       = СпецификацияНоменклатуры;
                
                ЗаполнитьСтрокиДереваСпецификаций(НоваяСтрока, ТаблицаНоменклатуры);
                
                Строки = ТаблицаНоменклатуры.НайтиСтроки(СтруктураПоиска);
                ТаблицаНоменклатуры.Удалить(Строки.Получить(0));
                
            КонецЕсли;
            
        ИначеЕсли Строка.ВидНорматива = Перечисления.ВидыНормативовНоменклатуры.Узел Тогда
            
            Если ТипЗнч(Строка.Номенклатура) <> Тип("СправочникСсылка.СпецификацииНоменклатуры") Тогда
                Продолжить;
            КонецЕсли;
            
            СтруктураПоиска.Очистить();
            СтруктураПоиска.Вставить("Номенклатура",                Строка.Номенклатура);
            СтруктураПоиска.Вставить("ХарактеристикаНоменклатуры", Неопределено);
            СтруктураПоиска.Вставить("Спецификация",        Неопределено);
            
            Строки = ТаблицаНоменклатуры.НайтиСтроки(СтруктураПоиска);
            Если Строки.Количество() > 0 Тогда
                Продолжить;
            КонецЕсли;
            
            НоваяСтрокаТаблицы = ТаблицаНоменклатуры.Добавить();
            НоваяСтрокаТаблицы.Номенклатура               = Строка.Номенклатура;
            НоваяСтрокаТаблицы.ХарактеристикаНоменклатуры = Неопределено;
            НоваяСтрокаТаблицы.Спецификация       = Неопределено;
            
            ЗаполнитьСтрокиДереваСпецификаций(НоваяСтрока, ТаблицаНоменклатуры);
            
            Строки = ТаблицаНоменклатуры.НайтиСтроки(СтруктураПоиска);
            ТаблицаНоменклатуры.Удалить(Строки.Получить(0));
            
        КонецЕсли;
        
    КонецЦикла;
    
    ЭлементыФормы.ДеревоСпецификаций.Развернуть(СтрокаСпецификации, Ложь);
    
    Если СтрокаСпецификации.ВидСтроки = Перечисления.ВидыСтрокДереваСпецификаций.Номенклатура
        ИЛИ СтрокаСпецификации.ВидСтроки = Перечисления.ВидыСтрокДереваСпецификаций.Узел Тогда
        Для Каждого Строка Из СтрокаСпецификации.Строки Цикл
            ЭлементыФормы.ДеревоСпецификаций.Развернуть(Строка, Ложь);
        КонецЦикла;
    КонецЕсли;
    
КонецПроцедуры // ЗаполнитьСтрокиДереваСпецификаций()
18 RShurik
 
19.04.14
15:14
спасибо, процедура конструктора спецификации у меня есть, дело в том что он по группам выводит,
мне нужно выводить,только самые нижние спецификации
19 neo_matrix_123
 
19.04.14
15:37
см. первый вариант кода (12). там без групп - на выходе просто линейный список, и граздо меньше букв ;-)
20 neo_matrix_123
 
19.04.14
15:41
и, кстати, получилось выстроить запрос через консоль запросов на 10 уровнях вложенности, каждый из которых параллелен. гемор, конечно, но работает зараза!
21 RShurik
 
19.04.14
15:43
спасибо за коды, че ж там за запрос получился?
22 neo_matrix_123
 
19.04.14
15:53
да, собственно, все просто. 10 параллельных запросов по две таблицы в каждом. основная - это сама спецификация на головняк - готовую продукцию. вторая таблица получает только материалы (не номенклатура.вид воспроизводства = производство или номенклатура.вид воспроизводства = покупка). главное не запутаться в уровнях вложенности. развлекуха первостатейная! так-что лучше как в (12), - пускай пашут процедуры глобального контекста.
23 RShurik
 
19.04.14
17:06
ну тогда буду разбираться с процедурами
24 neo_matrix_123
 
19.04.14
22:19
(23) как успехи? удалось победить глобальный контекст?
25 RShurik
 
20.04.14
00:21
да пока не садился,скорее всего в понедельник буду мучать
26 neo_matrix_123
 
20.04.14
00:34
говорят, Христо-то воскрес!
27 PCcomCat
 
20.04.14
01:39
Ржу - не могу! "да, собственно, все просто. 10 параллельных запросов по две таблицы в каждом"
Ошибка? Это не ошибка, это системная функция.