Имя: Пароль:
1C
1C 7.7
v7: Выбор из справочника
,
0 alessandro7_7
 
25.06.12
21:50
Граждане, есть проблема. Надеюсь на вашу помощь. Только сильно не пинайте.
Есть документ ЗаявкаОтПокупателя, есть печатная форма к этому документу Спецификация. Создаю еще одну печатную форму ПотребностьМатериала, которая во многом схожа со Спецификацией, но требуется добавить дополнительные колонки. Значения для этих колонок, зависят от номенклатуры и уже вписаны в справочник Нормы Расходов для каждой конкретной единицы номенклатуры. Как мне вывести эти колонки в новую печатную форму?
1 Strogg
 
25.06.12
22:04
вестимо как. Запросом собираешь нормы расходов, используя табличную часть документа заявкаОтПокупателя. Ну и потом пуляешь их в свой макет.
2 alessandro7_7
 
25.06.12
22:09
Strogg, буду очень признателен за пример кода...
3 alessandro7_7
 
25.06.12
22:16
Да и еще забыл добавить справочник Нормы Расходов подчинен справочнику Номенклатура и платформа 7.7.
4 GreyK
 
25.06.12
22:23
(3) Ты ещё забыл зряплатой поделиться :)
Здесь всё просто или ты задаешь правильный вопрос, или ты назначаешь цену решенмя твоей ТЗ.
5 Strogg
 
25.06.12
22:23
от ты интересный. За тебя еще конфу протелепатить?
Чото типа этого:
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    Нормы.Наименование,
                  |    Нормы.Количество
                  |ИЗ
                  |    Справочник.НормыРасходовТМЦ КАК Нормы
                  |ГДЕ
                  |    Нормы.Владелец В(&СписокНоменклатуры)"
   ;
   Запрос.УстановитьПараметр("СписокНоменклатуры", Тч.ВыгрузитьКолонку("Номенклатура"));
/////
Думаю, запрос на 7.7 несильно будет отличаться. М.Б. группировку еще добавить по наименованию, чтоб собирал одинаковые нормы.
6 alessandro7_7
 
25.06.12
22:28
GreyK, делиться нечем пока, разбираюсь так сказать с эти мделом на перспективу..
Strogg, спасибо.
7 GreyK
 
25.06.12
22:34
(6) Для начала попроси модеров сменить V8 на V7, назвать конфу, а потом постарайся понять что ты не понимаешь в заполнении таблицы.
8 alessandro7_7
 
25.06.12
22:54
Уважаемые модераторы прошу мою тему перенести в конфу V.7!
9 alessandro7_7
 
25.06.12
22:58
GreyK, заполнил все колонки в таблице (используя ТЗ в модуле формы, выражения типа НР.Элемент.Тоннаж, ТЗ.Номенклатура.ЕдиницаИзмерения и т.д.) кроме одной - материал, никак не могу его вытащить из справочника. Он там как-то хитро прописан.
10 GreyK
 
25.06.12
23:00
(9) Конфа самописная?
11 alessandro7_7
 
25.06.12
23:02
Нет, производство+услуги+бухгалтерия ред.2.8, но может что-то вручную и дописано
12 GreyK
 
25.06.12
23:23
(11) В ПУБе для каждой строки Заявкм указывается спецефикация.

   НормыРасходов = СоздатьОбъект("Справочник.НормыРасходов");
   ВыбратьСтроки();
   Пока ПолучитьСтроку() = 1 Цикл
       
       НаименованиеТовара = глПолноеНаименование(Товар);
       Таб.ВывестиСекцию("Строка");
       НормыРасходов.ИспользоватьВладельца(Спецификация);
       НормыРасходов.ВыбратьЭлементы();
       Пока НормыРасходов.ПолучитьЭлемент() = 1 Цикл
           ....
       КонецЦикла;
       
   КонецЦикла;
13 alessandro7_7
 
27.06.12
12:06
Не получается...
Конфигурация ПУБ 2.8.
Создаю таблицу "Потребность материала"

Процедура Потр()        
Таб = СоздатьОбъект("Таблица");
НР = СоздатьОбъект("Справочник.НормыРасходов");
Таб.ИсходнаяТаблица("Потребность");  
Таб.ВывестиСекцию("Шапка");                
индекс = 0;        
ОбщВес = 0;                
ТЗ.ВыбратьСтроки();                
Пока ТЗ.ПолучитьСтроку() = 1 Цикл                  
индекс = индекс + 1;            
Если ТЗ.Номенклатура.ВидПроизводства = Перечисление.ВидПродукции.КП Тогда            
Таб.ВывестиСекцию("СтрокаКП");          
НР.ИспользоватьВладельца(ТЗ.Номенклатура);    
индекс2 = 0;    
НР.ВыбратьЭлементы();    
Пока НР.ПолучитьЭлемент() = 1 Цикл            
индекс2 = индекс2 + 1;  
индекс3 = Строка(индекс)+"."+Строка(индекс2);  
КонецЦикла;

В табличной форме вывожу различные колонки, например:
Наименование (забиваю в колонку НР.Элемент), Цвет (НР.Элемент.Цвет) и т.д.
В общем я могу вывести любое значение, которое присутствует в форме Номенклатурная единица справочника Номенклатура. Однако материал на этой форме явно не прописан, соответственно у меня возникают трудности с выводом этой колонки.

Хелп, плиз.
14 Shrike
 
27.06.12
12:41
хз, конечно что тебе нужно, разложи продукцию по спецификации, выберы только матералы м выводи на печать.
Процедура РазложитьПродукциюПоНормативам(ТаблицаПродукции)
       
   ТабЗатрат = СоздатьОбъект("ТаблицаЗначений");
   
   ТаблицаПродукции.ВыбратьСтроки();
   Пока ТаблицаПродукции.ПолучитьСтроку() = 1 Цикл
       
       Товар        = ТаблицаПродукции.Товар;
       Количество   = ТаблицаПродукции.Количество;
       Спецификация = ТаблицаПродукции.Спецификация;

       // здесь выводи в печатную форму продукцию

       глЗатратыПоПродукции(Товар, Спецификация, Количество, ДатаДок, ТабЗатрат);
       
       ТабЗатрат.ВыбратьСтроки();
       Пока ТабЗатрат.ПолучитьСтроку() = 1 Цикл
           
           Если (ТабЗатрат.ВидЭлемента = Перечисление.ВидыЭлементовНормРасходов.Материал) Тогда
               ТекВидМПЗ = Перечисление.ВидыМПЗ.Материалы;
           ИначеЕсли (ТабЗатрат.ВидЭлемента = Перечисление.ВидыЭлементовНормРасходов.Товар) Тогда
               ТекВидМПЗ = Перечисление.ВидыМПЗ.Товары;
           ИначеЕсли (ТабЗатрат.ВидЭлемента = Перечисление.ВидыЭлементовНормРасходов.Полуфабрикат) Тогда
               ТекВидМПЗ = Перечисление.ВидыМПЗ.Полуфабрикаты;
           ИначеЕсли (ТабЗатрат.ВидЭлемента = Перечисление.ВидыЭлементовНормРасходов.Продукция) Тогда
               ТекВидМПЗ = Перечисление.ВидыМПЗ.Продукция;                
           Иначе
               Продолжить;
           КонецЕсли;

           // здесь выводи в печатную форму матералы и т.п.

           табПереработки.НоваяСтрока();
           табПереработки.ВидМПЗ       = ТекВидМПЗ;
           табПереработки.Номенклатура = ТабЗатрат.Элемент;
           табПереработки.Ед           = ТабЗатрат.Элемент.ОсновнаяЕдиницаИзмерения;  
           табПереработки.Количество   = Окр(ТабЗатрат.Количество, 3, 1);
           
       КонецЦикла;
       
   КонецЦикла;
   
КонецПроцедуры
15 1dvd
 
27.06.12
12:43
(5)>>Думаю, запрос на 7.7 несильно будет отличаться. М.Б. группировку еще добавить по наименованию, чтоб собирал одинаковые нормы.

наивный какой
16 alessandro7_7
 
27.06.12
15:30
В общем вопрос сводится в данный момент к следующему:
в ПУБ-е как добраться до значения справочника "Материалы" по каждому конкретному владельцу, так как этим:

ТипМатериала = СоздатьОбъект("Справочник.Материалы");
ТипМатериала.ИспользоватьВладельца(ТЗ.Номенклатура);
ТипМатериала.ВыбратьЭлементы();

я получаю значения справочника Номенклатура...
17 Morphius
 
27.06.12
15:45
(0) Попробуй покурить: глЗатратыПоПродукции(Док.Продукция, Док.Продукция.ОсновнаяСпецификация, Док.Количество, ТекущийДокумент(), ТабЗатратПФ2);
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой