Имя: Пароль:
1C
1C 7.7
v7: как вывести в отдельной колонке артикул для отчёта остат. тмц
, ,
0 флопик
 
30.10.15
11:02
а то запутался уже куда что писать
1 mikecool
 
30.10.15
11:03
в настройках программы где то должна быть колонка для отчетов
там выбирался код или артикул
2 mikecool
 
30.10.15
11:04
+1 читай в константах
3 mikecool
 
30.10.15
11:04
+1 если не так - то лезь в конфигуратор и смотри отчет
4 флопик
 
30.10.15
11:14
(2) я уже поставил в константах артикул, не помогло.
5 флопик
 
30.10.15
11:20
я короче в процедуре сформировать у отчета остатки тмц прописал
перем ПечАртикул;
    
ТЗ.НоваяКолонка("ПечАртикул", "Строка");

ТЗ.ПечАртикул = ТМЦ.Артикул;

ТМЦСтрока = "" + ТМЦ + ?(Константа.ПоказыватьАртикул = 1, " " + СокрЛП(ТМЦ.Артикул), "");  

Что я делаю не так?
6 Duke1C
 
30.10.15
11:29
(5) Всё!
Это весь код? ИЛИ ты, на свой взгляд, привел "только самые нужные" 3 строки?
7 флопик
 
30.10.15
11:31
(6) вот весь код это процедуры
Процедура Сформировать(ЗакрытьДиалог=0, ВДокумент=0)    
    
    Перем Запрос, ТекстЗапроса;              
    Перем СписокИтогов;                    
    
    ПредставлениеЦены = ЦенаТовара.ПолучитьЗначение(ЦенаТовара.ТекущаяСтрока());
              
    ВалютаЦены = глРубли;
    Если ПредставлениеЦены = "из справочника цен"  Тогда
        Если ЦенаИзСправочника.Выбран() = 1 Тогда
            ВалютаЦены = ЦенаИзСправочника.Валюта;
        Иначе
            Предупреждение("Выберите, пожалуйста, тип используемой цены!");
            Возврат;
        КонецЕсли;
    КонецЕсли;
    
    Если глПроверкаДаты(ДатаКонца,ДатаКонца)=0 Тогда
        Возврат;
    КонецЕсли;
    
    Если (ТипЗначенияСтр(Таб) <> "Таблица") ИЛИ (Обновить = 0) Тогда
           Таб = СоздатьОбъект("Таблица");
    Иначе
         Таб.Очистить();
    КонецЕсли;      
    
    Если ВДокумент = 1  Тогда
        ТЗВДокумент = СоздатьОбъект("ТаблицаЗначений");
        ТЗВДокумент.НоваяКолонка("Разделитель", "Справочник.Фирмы");
        ТЗВДокумент.НоваяКолонка("Склад",         "Справочник.Склады");
        ТЗВДокумент.НоваяКолонка("Номенклатура","Справочник.Номенклатура");
        ТЗВДокумент.НоваяКолонка("Количество", "Число");
        ТЗВДокумент.НоваяКолонка("Единица", "Справочник.Единицы");
        ТЗВДокумент.НоваяКолонка("Коэффициент", "Число");
        ТЗВДокумент.НоваяКолонка("ЦенаПрод",    "Число");
        ТЗВДокумент.НоваяКолонка("Сумма",         "Число");

    КонецЕсли;

    Таб.ИсходнаяТаблица( "ОстаткиТМЦ" );
    
    Расшифровка = СоздатьОбъект("СписокЗначений");  
    Путь     = "";
    ИмяФайла = "";
    РасположениеФайла(Путь,ИмяФайла);
    ФайлОтчета = Путь + ИмяФайла;
    Расшифровка.Установить("Отчет", ?(ПустоеЗначение(ФайлОтчета) = 1,"ОстаткиТМЦ", ФайлОтчета));
    
    // все настройки помещаем в список
    Расшифровка.Установить("ДатаКонца",     ДатаКонца);
    Расшифровка.Установить("ВыбРазделитель1",ВыбРазделитель1);
    Расшифровка.Установить("ВыбРазделитель2",ВыбРазделитель2);
    Расшифровка.Установить("ВыбРазделитель3",ВыбРазделитель3);
    Расшифровка.Установить("ВидРазделителя",ВидРазделителя);

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

    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    Если  ПоказатьКомиссию = 1 Тогда
        ТекстЗапроса = ТекстЗапросаСКомиссией();
    Иначе
        ТекстЗапроса = ТекстЗапросаБезКомиссии();
    КонецЕсли;
                      
    Если Показатель.ТекущаяСтрока() = 2 Тогда
        ТекстЗапроса = ТекстЗапроса +
        "Функция РезервКонОст     = КонОст(Резерв);";
    КонецЕсли;

    Если (ПредставлениеЦены = "отпускная цена (только розница)") Тогда
        ТекстЗапроса = ТекстЗапроса +
        "ЦенаПрод        = Регистр.ОстаткиТМЦ.ЦенаПрод, Регистр.ПартииОтданные.Номенклатура.МинОстаток;
        |Условие (РозничныйСклад > 0);  
        |Группировка ЦенаПрод;";  
    КонецЕсли;
    
    ТекстЗапроса = ТекстЗапроса +
    "Группировка Склад Все ВошедшиеВЗапрос;";

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

    Если ПредставлениеЦены <> "не показывать" Тогда  
        ТЗ.НоваяКолонка("Цена", "Строка");
    КонецЕсли;

    Если ВыводитьЗаказанный = 1 Тогда
        ТЗ.НоваяКолонка("Заказано", "Строка");
    КонецЕсли;
    
    // сформируем список складов.
    ФлагВозврата = 0;
    СписокСкладов = СоздатьОбъект("СписокЗначений");
    Пока (Запрос.Группировка("Номенклатура") = 1) и (ФлагВозврата <> 1) Цикл
        Если Запрос.ЭтоГруппа("Номенклатура")=1 Тогда
            Продолжить;
        КонецЕсли;
        Если ПредставлениеЦены = "отпускная цена (только розница)" Тогда  
            Пока (Запрос.Группировка("ЦенаПрод") = 1) и (ФлагВозврата <> 1) Цикл
                ДобавитьСклады(Запрос, ФлагВозврата, СписокСкладов);
            КонецЦикла;
        Иначе    
            ДобавитьСклады(Запрос, ФлагВозврата, СписокСкладов);
        КонецЕсли;
    КонецЦикла;
    
    глЧислоСтрок = 0;

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

    Для Сч =1 По СписокСкладов.РазмерСписка() Цикл
        ПечСклад = СписокСкладов.ПолучитьЗначение(Сч);
        Если ПечСклад.Вид() = "Склады" Тогда
            Если (ПредставлениеЦены <> "не показывать") и ((ПредставлениеЦены <> "отпускная цена (только розница)") или (ПечСклад.РозничныйСклад = 1)) Тогда          
                Таб.ПрисоединитьСекцию("ШапкаТаблицы|Сумма");
            Иначе
                Таб.ПрисоединитьСекцию("ШапкаТаблицы|Склад");
            КонецЕсли;    
        Иначе
            Если (ПредставлениеЦены <> "не показывать") и (ПредставлениеЦены <> "отпускная цена (только розница)") тогда
                Таб.ПрисоединитьСекцию("ШапкаТаблицы|Сумма");
            Иначе
                Таб.ПрисоединитьСекцию("ШапкаТаблицы|Склад");
            КонецЕсли;                
        КонецЕсли;    
    КонецЦикла;
    
    глОживить(1);
    
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 3, "ОстаткиТМЦ", "ОстаткиТМЦ");
                    
    СписокГрупп = СоздатьОбъект("СписокЗначений");
    Запрос.ВНачалоВыборки();
    Пока (Запрос.Группировка("Номенклатура") = 1) Цикл
        ТМЦ     = Запрос.Номенклатура;
            
        Если Показатель.ТекущаяСтрока()=1 Тогда
            ПоказательАнализа = Запрос.КоличествоКонОст;
        Иначе
            ПоказательАнализа = Запрос.КоличествоКонОст - Запрос.РезервКонОст;
        КонецЕсли;
        
        // проверим условие
        Если ПоказатьОстатки.ТекущаяСтрока()=1 Тогда        // все ненулевые
            // выводим все    
            Если ПоказательАнализа = 0 Тогда
                Продолжить;
            КонецЕсли;
        
        ИначеЕсли ПоказатьОстатки.ТекущаяСтрока()=2 Тогда    // все
            // выводим все
        
        ИначеЕсли ПоказатьОстатки.ТекущаяСтрока()=3 Тогда   // все отрицательные
            Если ПоказательАнализа >= 0 Тогда // проверим
                Продолжить;
            КонецЕсли;    
                
        ИначеЕсли ПоказатьОстатки.ТекущаяСтрока()=4 Тогда   // меньше мин. остатка
            Если ПоказательАнализа >= ТМЦ.МинОстаток Тогда
                Продолжить;
            КонецЕсли;                
            
        ИначеЕсли ПоказатьОстатки.ТекущаяСтрока()=5 Тогда   // все, имеющиеся в наличи
            Если ПоказательАнализа <= 0 Тогда
                Продолжить;
            КонецЕсли;    
            
        КонецЕсли;  
            
        Если Запрос.ЭтоГруппа("Номенклатура")=1 Тогда
            СписокГрупп.ДобавитьЗначение(ТМЦ);
            Продолжить;
        КонецЕсли;
            
        // выводим группы ТМЦ
        Пока СписокГрупп.РазмерСписка()>0 Цикл
            Группа     = СписокГрупп.ПолучитьЗначение(1);
            Если ТМЦ.ПринадлежитГруппе(Группа)=1 Тогда
                ТЗ.НоваяСтрока();
                ТЗ.Уровень = СписокГрупп.РазмерСписка();
                ТЗ.ПечТекстСтроки = Группа.Наименование;
                ТЗ.Родитель    = Группа.Родитель;
                ТЗ.ТекРасшифровка = Группа;
            КонецЕсли;
            СписокГрупп.УдалитьЗначение(1);
        КонецЦикла;  
        
        ТМЦСтрока = "" + ТМЦ + ?(Константа.ПоказыватьАртикул = 1, " " + СокрЛП(ТМЦ.Артикул), "");
                          
        Если ПредставлениеЦены = "отпускная цена (только розница)"  Тогда
            Пока Запрос.Группировка("ЦенаПрод") = 1 Цикл
                                                      
                ТЗ.НоваяСтрока();                              
                ТЗ.Уровень = 0;
                ТЗ.ТекРасшифровка     = ТМЦ;
                ТЗ.Родитель            = ТМЦ.Родитель;
                ТЗ.ПечЕд             = ?(ВидЕдиницы = 1,ТМЦ.ОсновнаяЕдиница, ТМЦ.БазоваяЕдиница);
                ТЗ.ПечТекстСтроки    = ТМЦСтрока + ?(ТМЦ.МинОстаток=0,"",", мин. остаток = "+СокрЛП(глФРМКоличество(ТМЦ.МинОстаток,ТЗ.ПечЕд)));
                Если ВыводитьЗаказанный = 1 Тогда
                    ТЗ.Заказано = Запрос.ЗаказаноКонОст;
                КонецЕсли;
                ЗаполнитьСтроку(ТЗ, Запрос, СписокСкладов, ВДокумент);
            КонецЦикла;
        иначе
            ТЗ.НоваяСтрока();                              
            ТЗ.Уровень = 0;
            ТЗ.ТекРасшифровка     = ТМЦ;
            ТЗ.Родитель            = ТМЦ.Родитель;
            ТЗ.ПечЕд             = ?(ВидЕдиницы = 1,ТМЦ.ОсновнаяЕдиница, ТМЦ.БазоваяЕдиница);
            ТЗ.ПечТекстСтроки    = ТМЦСтрока + ?(ТМЦ.МинОстаток=0,"",", мин. остаток = "+СокрЛП(глФРМКоличество(ТМЦ.МинОстаток,ТЗ.ПечЕд)));
            Если ВыводитьЗаказанный = 1 Тогда
                ТЗ.Заказано = Запрос.ЗаказаноКонОст;
            КонецЕсли;
            ЗаполнитьСтроку(ТЗ, Запрос, СписокСкладов, ВДокумент);
        КонецЕсли;  
        глОживить(1);

    КонецЦикла;        
    
    // Последняя строка для общих итогов
    ТЗ.НоваяСтрока();
    ТЗ.Уровень = 12;
    
    РассчитатьИтогиПоГруппам(СписокСкладов);    
    
    ТЗ.ВыбратьСтроки();
    Пока ТЗ.ПолучитьСтроку() = 1  Цикл
        
        КоличествоНаСкладе = 0;
        Для Сч = 1 По СписокСкладов.РазмерСписка() Цикл      
            ТекСклад = СписокСкладов.ПолучитьЗначение(Сч);
            КоличествоНаСкладе = КоличествоНаСкладе + ТЗ.ПолучитьЗначение(ТЗ.НомерСтроки, "Количество" + Сч);
        КонецЦикла;
        
        Если ТЗ.Уровень = МаксимальныйУровень Тогда
            Если  КоличествоНаСкладе = 0 Тогда
                Продолжить;
            КонецЕсли;
        КонецЕсли;
            
        ПечТекстСтроки = ТЗ.ПечТекстСтроки;
        ПечЕд = ТЗ.ПечЕд;
        ТекРасшифровка = ТЗ.ТекРасшифровка;
        Если (ТЗ.Уровень > 0) И (ТЗ.Уровень < 12) Тогда      
            ИмяСекции = "СтрокаГ";          
        ИначеЕсли ТЗ.Уровень = 12 Тогда
            ИмяСекции = ?((ПредставлениеЦены <> "не показывать") ИЛИ (ИтогиПоКоличеству = 1),"ПодвалИтого","Подвал");
        Иначе
            ИмяСекции = "Строка"
        КонецЕсли;              
        Таб.ВывестиСекцию(ИмяСекции+"|ТМЦ");
        
        Если ВыводитьЗаказанный = 1 Тогда
            ПечЗаказано = глФРМКоличество(ТЗ.Заказано);
            Таб.ПрисоединитьСекцию(ИмяСекции + "|Заказано");
        КонецЕсли;          
        
        Если (ПредставлениеЦены <> "не показывать") Тогда  
            ПечЦена = глФРМ(ТЗ.Цена);
            Таб.ПрисоединитьСекцию(ИмяСекции + "|Цена");
        КонецЕсли;
        
        Сч = 0;
        Для Сч = 1 По СписокСкладов.РазмерСписка() Цикл      
            ТекСклад = СписокСкладов.ПолучитьЗначение(Сч);
            ПечКол = глФРМКоличество(ТЗ.ПолучитьЗначение(ТЗ.НомерСтроки, "Количество" + Сч));
            Если ТекСклад.Вид() = "Склады" Тогда
                Если (ПредставлениеЦены <> "не показывать") и ((ПредставлениеЦены <> "отпускная цена (только розница)") или (ТекСклад.РозничныйСклад = 1)) Тогда
                    ПечСумма        = глФрм(ТЗ.ПолучитьЗначение(ТЗ.НомерСтроки, "Сумма" + Сч));
                    Таб.ПрисоединитьСекцию(ИмяСекции + "|Сумма");
                Иначе                    
                    Таб.ПрисоединитьСекцию(ИмяСекции + "|Склад");
                КонецЕсли;
            Иначе
                Если (ПредставлениеЦены <> "не показывать") и (ПредставлениеЦены <> "отпускная цена (только розница)") Тогда
                    ПечСумма        = глФрм(ТЗ.ПолучитьЗначение(ТЗ.НомерСтроки, "Сумма" + Сч));
                    Таб.ПрисоединитьСекцию(ИмяСекции + "|Сумма");
                Иначе                    
                    Таб.ПрисоединитьСекцию(ИмяСекции + "|Склад");
                КонецЕсли;
            КонецЕсли;
        КонецЦикла;
    КонецЦикла;
        
    Таб.ОбластьПечати(3);
        
    // Вывод заполненной формы
    Если ВДокумент = 0  Тогда
        Таб.ТолькоПросмотр(1);
        Если глПолучитьПолномочие("РазрешитьРедактированиеТаблиц") = 0 Тогда
            Таб.Защита(1);
        КонецЕсли;
        Таб.Показать("Остатки ТМЦ", "");  
    КонецЕсли;
        
    Если (Обновить = 2)ИЛИ(ЗакрытьДиалог=1) Тогда
        СтрокаДействийФормы = "#Закрыть";
    КонецЕсли;
    
КонецПроцедуры
8 флопик
 
30.10.15
11:32
(6) Это без тех строк которые я вставлял
9 Ясный перец
 
30.10.15
11:44
Вернёмся к сабжу:
чтобы "вывести в отдельной колонке артикул для отчёта" нужно как минимум создать эту "колонку" в таблице печатной формы, то есть подготовить место для печати артикула и в итоге вывести туда его значение.
10 sapphire
 
30.10.15
11:46
(0) regprint.ert
11 флопик
 
30.10.15
11:46
(9) создал, всё сделал
12 флопик
 
30.10.15
11:47
может у кого пример есть? Кто добавлял уже?
13 sapphire
 
30.10.15
11:48
14 Масянька
 
30.10.15
11:48
(12) Покажи - ЗаполнитьСтроку(ТЗ, Запрос, СписокСкладов, ВДокумент);
15 флопик
 
30.10.15
11:49
(13) извиняюсь а какой именно?
16 Масянька
 
30.10.15
11:49
+(14) Конфа какая?
17 флопик
 
30.10.15
11:50
(16) Торговля и склад
18 Масянька
 
30.10.15
11:52
(17) Тут:

   Запрос.ВНачалоВыборки();
    Пока (Запрос.Группировка("Номенклатура") = 1) Цикл
        ТМЦ     = Запрос.Номенклатура;


После ТМЦ и вставляй.
В Запросе нужно получить артикул, на форме отчета поле сделать для артикула.
19 sapphire
 
30.10.15
11:52
Не играет роли какая конфа.
Добавить колонку в макете в свойствах указать выражение
Номенклатура.Артикул
20 sapphire
 
30.10.15
11:52
(18) Зачем?
21 Масянька
 
30.10.15
11:56
(20) Чтобы ты спросил.
Для начала открой "Остатки ТМЦ" и посмотри.
22 флопик
 
30.10.15
11:58
всем спасибо, сейчас попробую.
23 HawkEye
 
30.10.15
12:03
(19) не играет? даже если в конфе нет справочника Номенклатура или реквизита Артикул в справочнике Номенклатура? )))

и какая связь того, что написано в св-вах с идентификаторами метаданных?...

силен )))
24 Масянька
 
30.10.15
12:12
(23) Тогда (нет справочника и  артикула) - точно не играет :)))))))))))
25 Ясный перец
 
30.10.15
12:20
Я бы в таблицу ОстаткиТМЦ в вертикальную секцию "ТМЦ" добавил бы колонку для вывода артикула. И в образовавшейся ячейке горизонтальной секции "Строка" вывел бы переменную ПечАртикул, значение которой вычислялось бы в модуле
между строками
        ПечТекстСтроки = ТЗ.ПечТекстСтроки;
        ПечЕд = ТЗ.ПечЕд;
То есть:
        ПечТекстСтроки = ТЗ.ПечТекстСтроки;
        ПечАртикул = ТЗ.ПечАртикул;
        ПечЕд = ТЗ.ПечЕд;
        
Но сначала сохранил бы отчёт как внешний, все изменения внёс бы в него и после доработок вывел бы в "Дополнительные возможности"  ;)
26 флопик
 
30.10.15
12:31
(23) А у меня и справочник и реквизит Артикул есть, может можно как то по проще все это сделать?
27 флопик
 
30.10.15
12:31
а то мозги уже вскипели.
28 Ясный перец
 
30.10.15
12:33
(26) В (25) куда уж проще?
29 флопик
 
30.10.15
12:35
(28) там ошибку выдает
30 Масянька
 
30.10.15
12:36
(26) В запросе добавляешь:

    |КодНоменклатуры= Регистр.ОстаткиТМЦ.Номенклатура.Код,      
    |                 Регистр.Заказы.Номенклатура.Код,
    |                 Регистр.РезервыТМЦ.Номенклатура.Код;

Только вместо кода - свой артикул.
Потом (18)
Потом в печ. форме там, где секция "Строка", ячейка "ПечТекстСтроки", вставляешь новую ячейку со своим артикулом. Только секции (вертикальные смотри).
Усё.
Я код вставляла. Всё - арбайтэн.
31 Масянька
 
30.10.15
12:39
+ (30) Не, бери лучше код номенклатуры, а в (18):
Уже из кода получай артикул...
Хотя, можно и из самой номенклатуры...
32 Ясный перец
 
30.10.15
12:48
(29) А подумать?... ;)
33 флопик
 
30.10.15
12:52
всем спасибо, тема закрыта. все сделал
34 HawkEye
 
30.10.15
13:55
(33) ну вот.. а я только собирался писать )))
ну сделал так сделал..
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший