Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Маршрутный лист , Печатная форма 3 страниц V   1 2 3 >          
XacTLa Подменю пользователя
сообщение 12.09.17, 16:32
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 99
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

1С:Предприятие 8.3 (8.3.6.2237)
1С:ERP Управление предприятием 2.0 (2.0.9.66)



Ситуация такая что мне нужно что бы печаталось не один документ а несколько выделенных документов а именно маршрутный листов, кто что скажет, подскажет?


Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

    УправлениеПечатью.
    ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
    "МаршрутныйНовый",
    "Маршрутный новый",
    СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));

КонецПроцедуры // Печать()

logist Подменю пользователя
сообщение 12.09.17, 17:09
Сообщение #2

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(XacTLa @ 12.09.17, 17:32) *
кто что скажет, подскажет?

А что тут подсказывать? МассивОбъектов - это и есть массив объектов, процедуру переписать так, что бы был цикл который обходит массив объектов


Signature
Личные бесплатные консультации не даю, для этого есть форум!

XacTLa Подменю пользователя
сообщение 13.09.17, 8:46
Сообщение #3

Говорящий
***
Группа: Пользователи
Сообщений: 99
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

logist @ Вчера, 18:09 * ,
Суть такая вроде то, но ошибка вот код:
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "МаршрутныйНовый") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
                        КоллекцияПечатныхФорм,
    "МаршрутныйНовый",
    "Маршрутный новый",
    СформироватьПечатнуюФорму (МассивОбъектов, ОбъектыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода));
    
    КонецЕсли;

КонецПроцедуры // Печать()


Ошибка: {ВнешняяОбработка.МаршрутныйНовый.МодульОбъекта(50,60)}: Слишком много фактических параметров (СформироватьПечатнуюФорму)
СформироватьПечатнуюФорму (МассивОбъектов, ОбъектыПечати, <<?>>КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода)); (Проверка: Сервер)

logist Подменю пользователя
сообщение 13.09.17, 11:30
Сообщение #4

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(XacTLa @ 13.09.17, 9:46) *
но ошибка

А вы параметры в функцию написали просто так, без понимания что пишите?

По идее код должен быть где-то таким
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

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

КонецПроцедуры // Печать()


Signature
Личные бесплатные консультации не даю, для этого есть форум!

XacTLa Подменю пользователя
сообщение 13.09.17, 15:01
Сообщение #5

Говорящий
***
Группа: Пользователи
Сообщений: 99
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

logist @ Сегодня, 11:30 * ,
Да это правильный код я знаю, но суть такова что нужно что бы на печать выводилось несколько печатных форм по выбору, допустим выбирает нач производства 3 маршрутных листа, и их конкретно хочет распечатать, но при этом коде печатает только один маршрутный лист.

logist Подменю пользователя
сообщение 13.09.17, 17:22
Сообщение #6

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(XacTLa @ 13.09.17, 16:01) *
допустим выбирает нач производства 3 маршрутных листа

Если он курсором в списке пометил три строки (документа) и нажал на печать, то такой вариант как раз печатает три документа.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

XacTLa Подменю пользователя
сообщение 14.09.17, 8:24
Сообщение #7

Говорящий
***
Группа: Пользователи
Сообщений: 99
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

logist @ Вчера, 18:22 * ,

 ! 

Правила: 8
 


А на печать выводит тот документ на котором курсор изначально стоял, я думаю сейчас пройдусь по старому маршрутному листу и там функции пересмотрю

Сообщение отредактировал logist - 14.09.17, 12:14

XacTLa Подменю пользователя
сообщение 18.09.17, 9:28
Сообщение #8

Говорящий
***
Группа: Пользователи
Сообщений: 99
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

XacTLa @ 14.09.17, 9:24 * ,
Может тут ошибка я уже все перешерстил как мне сделать массовое распечатывание документа одного

Функция СформироватьПечатнуюФорму(СсылкаНаОбъект, ОбъектыПечати)
        
    ТабличныйДокумент = Новый ТабличныйДокумент;
    МакетОбработки = ПолучитьМакет("МакетМаршрутныйЛист");

    ОбластьШапки = МакетОбработки.ПолучитьОбласть("Шапка");

    ОбластьШапки.Параметры.НомерДокумента = СсылкаНаОбъект.Номер;
    ОбластьШапки.Параметры.ДатаДокумента = Формат(СсылкаНаОбъект.Дата, "ДФ=dd.MM.yyyy; ДЛФ=DT" );
    ОбластьШапки.Параметры.ПодразделениеПредставление = СсылкаНаОбъект.Подразделение;
    ОбластьШапки.Параметры.ИзделиеПредставление = СсылкаНаОбъект.Номенклатура;
    ОбластьШапки.Параметры.СпецификацияПредставление = СсылкаНаОбъект.Спецификация;
    ОбластьШапки.Параметры.РаспоряжениеПредставление = СсылкаНаОбъект.Распоряжение;
    ОбластьШапки.Параметры.Назначение = СсылкаНаОбъект.Назначение;
                          
    
    
    ТабличныйДокумент.Вывести(ОбластьШапки);
    
    
    ОбластьСтроки = МакетОбработки.ПолучитьОбласть("СтрокаТЧ");
    
    Для Каждого ТекущаяСтрока Из СсылкаНаОбъект.РаспоряжениеСпецификация Цикл
            
        ОбластьСтроки.Параметры.НоменклатураПредставление = ТекущаяСтрока.Номенклатура;
        ОбластьСтроки.Параметры.Норматив = ТекущаяСтрока.Количество;
        
        ТабличныйДокумент.Вывести(ОбластьСтроки);
        
    КонецЦикла;


остальное вот

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

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")

    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;

КонецПроцедуры

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

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

КонецПроцедуры // Печать()

Функция СформироватьПечатнуюФорму(СсылкаНаОбъект, ОбъектыПечати)
        
    ТабличныйДокумент = Новый ТабличныйДокумент;
    МакетОбработки = ПолучитьМакет("МакетМаршрутныйЛист");

    ОбластьШапки = МакетОбработки.ПолучитьОбласть("Шапка");

    ОбластьШапки.Параметры.НомерДокумента = СсылкаНаОбъект.Номер;
    ОбластьШапки.Параметры.ДатаДокумента = Формат(СсылкаНаОбъект.Дата, "ДФ=dd.MM.yyyy; ДЛФ=DT" );
    ОбластьШапки.Параметры.ПодразделениеПредставление = СсылкаНаОбъект.Подразделение;
    ОбластьШапки.Параметры.ИзделиеПредставление = СсылкаНаОбъект.Номенклатура;
    ОбластьШапки.Параметры.СпецификацияПредставление = СсылкаНаОбъект.Спецификация;
    ОбластьШапки.Параметры.РаспоряжениеПредставление = СсылкаНаОбъект.Распоряжение;
    ОбластьШапки.Параметры.Назначение = СсылкаНаОбъект.Назначение;
                          
    
    
    ТабличныйДокумент.Вывести(ОбластьШапки);
    
    
    ОбластьСтроки = МакетОбработки.ПолучитьОбласть("СтрокаТЧ");
    
    Для Каждого ТекущаяСтрока Из СсылкаНаОбъект.РаспоряжениеСпецификация Цикл
            
        ОбластьСтроки.Параметры.НоменклатураПредставление = ТекущаяСтрока.Номенклатура;
        ОбластьСтроки.Параметры.Норматив = ТекущаяСтрока.Количество;
        
        ТабличныйДокумент.Вывести(ОбластьСтроки);
        
    КонецЦикла;
    
    
            
    
    Возврат ТабличныйДокумент;

    
    
КонецФункции // СформироватьПечатнуюФорму()

XacTLa Подменю пользователя
сообщение 20.09.17, 10:37
Сообщение #9

Говорящий
***
Группа: Пользователи
Сообщений: 99
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

XacTLa @ 18.09.17, 9:28 * ,
Я так и не могу разобраться что мне дописать, в коллекцию печать не выводит хоть убей, уже всю голову поломал, может где то я что то упустил.

Я сразу скажу что я не гуру в этом деле, я только начинаю, очень хочется разобраться а намека даже нет

XacTLa Подменю пользователя
сообщение 26.09.17, 14:08
Сообщение #10

Говорящий
***
Группа: Пользователи
Сообщений: 99
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

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

КонецПроцедуры // Печать()


еще раз пишу, короче суть такова что код этот работает но ровно на одну печатную форму, а что бы распечатать несколько печатных форм то не работает. Куда копать уже не знаю

logist Подменю пользователя
сообщение 27.09.17, 11:04
Сообщение #11

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Что у вас содержится в МассивОбъектов когда ві ждете несколько документов?


Signature
Личные бесплатные консультации не даю, для этого есть форум!

XacTLa Подменю пользователя
сообщение 28.09.17, 14:24
Сообщение #12

Говорящий
***
Группа: Пользователи
Сообщений: 99
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

logist @ Вчера, 12:04 * ,
Весь код скинут это все что есть

logist Подменю пользователя
сообщение 28.09.17, 15:11
Сообщение #13

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

XacTLa, вы знаете что такое отладчик? Если знаете - ответьте на вопрос выше, если нет - восполните знания. и ответьте на вопросы выше smile.gif


Signature
Личные бесплатные консультации не даю, для этого есть форум!

salton Подменю пользователя
сообщение 28.09.17, 15:50
Сообщение #14

Говорящий
***
Группа: Пользователи
Сообщений: 92
Из: Полтава
Спасибо сказали: 24 раз
Рейтинг: 0

Цитата(XacTLa @ 28.09.17, 15:24) *
Весь код скинут это все что есть

Сбросьте также код которым вы заполняете МассивОбъектов.
По идее в МассивОбъектов вы должны добавить перечень документов выбранных для печати.
А так как у вас печатается всего один документ - можно предположить, что МассивОбъектов Вы никак не заполняете..

XacTLa Подменю пользователя
сообщение 28.09.17, 16:18
Сообщение #15

Говорящий
***
Группа: Пользователи
Сообщений: 99
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

salton @ Сегодня, 16:50 * ,
Функция ПечатнаяФормаМаршрутногоЛиста(МассивОбъектов, ОбъектыПечати, ПараметрыПечати)
    
    УстановитьПривилегированныйРежим(Истина);
    
    Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.МаршрутныйНовый.МаршрутныйЛист");
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Реквизиты.Ссылка,
    |    Реквизиты.Номер,
    |    Реквизиты.Дата,
    |    Реквизиты.Распоряжение,
    |    Реквизиты.Распоряжение.Номер КАК РаспоряжениеНомер,
    |    Реквизиты.Распоряжение.Дата КАК РаспоряжениеДата,
    |    Реквизиты.КодСтроки КАК КодСтроки,
    |    Реквизиты.Спецификация.МногоэтапныйПроизводственныйПроцесс КАК МногоэтапныйПроизводственныйПроцесс,
    |    Реквизиты.Спецификация КАК Спецификация,
    |    Реквизиты.Спецификация.Представление КАК СпецификацияПредставление,
    |    Реквизиты.Этап КАК Этап,
    |    Реквизиты.Этап.Представление КАК ЭтапПредставление,
    |    Реквизиты.Подразделение КАК Подразделение,
    |    Реквизиты.Подразделение.Представление КАК ПодразделениеПредставление,
    |    Реквизиты.Подразделение.Код КАК КодПодразделения,
    |    Реквизиты.Номенклатура КАК Номенклатура,
    |    Реквизиты.Номенклатура.Представление КАК НоменклатураПредставление,
    |    Реквизиты.Характеристика КАК Характеристика,
    |    Реквизиты.Характеристика.Представление КАК ХарактеристикаПредставление,
    |    Реквизиты.МаршрутнаяКарта КАК МаршрутнаяКарта,
    |    Реквизиты.МаршрутнаяКарта.Представление КАК МаршрутнаяКартаПредставление,
    |    Реквизиты.УправлениеМаршрутнымиЛистами КАК УправлениеМаршрутнымиЛистами,
    |    Реквизиты.Начало,
    |    Реквизиты.Окончание,
    |    Реквизиты.Запланировано,
    |    Реквизиты.Произведено,
    |    Реквизиты.Брак
    |ИЗ
    |    Документ.МаршрутныйЛистПроизводства КАК Реквизиты
    |ГДЕ
    |    Реквизиты.Ссылка В(&МассивДокументов)
    |
    |УПОРЯДОЧИТЬ ПО
    |    Реквизиты.Ссылка
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ТаблицаВыходныеИзделия.Ссылка КАК Ссылка,
    |    ТаблицаВыходныеИзделия.НомерСтроки,
    |    ТаблицаВыходныеИзделия.Номенклатура,
    |    ТаблицаВыходныеИзделия.Номенклатура.Код КАК НоменклатураКод,
    |    ТаблицаВыходныеИзделия.Номенклатура.Артикул КАК НоменклатураАртикул,
    |    ТаблицаВыходныеИзделия.Номенклатура КАК Номенклатура,
    |    ТаблицаВыходныеИзделия.Номенклатура.НаименованиеПолное КАК НоменклатураПредставление,
    |    ТаблицаВыходныеИзделия.Характеристика.Представление КАК ХарактеристикаПредставление,
    |    ВЫБОР
    |        КОГДА ТаблицаВыходныеИзделия.Упаковка <> ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
    |            ТОГДА ПРЕДСТАВЛЕНИЕССЫЛКИ(ТаблицаВыходныеИзделия.Упаковка.ЕдиницаИзмерения)
    |        ИНАЧЕ ПРЕДСТАВЛЕНИЕССЫЛКИ(ТаблицаВыходныеИзделия.Номенклатура.ЕдиницаИзмерения)
    |    КОНЕЦ КАК ЕдиницаИзмеренияНаименование,
    |    ТаблицаВыходныеИзделия.КоличествоУпаковок КАК Норматив,
    |    ВЫБОР
    |        КОГДА ТаблицаВыходныеИзделия.Ссылка.Статус В (ЗНАЧЕНИЕ(Перечисление.СтатусыМаршрутныхЛистовПроизводства.КВыполнению),
    |                                                        ЗНАЧЕНИЕ(Перечисление.СтатусыМаршрутныхЛистовПроизводства.Выполняется),
    |                                                        ЗНАЧЕНИЕ(Перечисление.СтатусыМаршрутныхЛистовПроизводства.Выполнен))
    |            ТОГДА ТаблицаВыходныеИзделия.КоличествоУпаковокФакт
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК Факт,
    |    ВЫБОР
    |        КОГДА ТаблицаВыходныеИзделия.Ссылка.Статус В (ЗНАЧЕНИЕ(Перечисление.СтатусыМаршрутныхЛистовПроизводства.КВыполнению),
    |                                                        ЗНАЧЕНИЕ(Перечисление.СтатусыМаршрутныхЛистовПроизводства.Выполняется),
    |                                                        ЗНАЧЕНИЕ(Перечисление.СтатусыМаршрутныхЛистовПроизводства.Выполнен))
    |            ТОГДА ТаблицаВыходныеИзделия.КоличествоУпаковокОтклонение
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК Отклонение,
    |    ЕСТЬNULL(ТаблицаОперации.НомерОперации, """") КАК НомерОперации,
    |    ЕСТЬNULL(ТаблицаОперации.Операция, НЕОПРЕДЕЛЕНО) КАК Операция
    |ИЗ
    |    Документ.МаршрутныйЛистПроизводства.ВыходныеИзделия КАК ТаблицаВыходныеИзделия
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.МаршрутныйЛистПроизводства.Операции КАК ТаблицаОперации
    |        ПО (ТаблицаОперации.Ссылка = ТаблицаВыходныеИзделия.Ссылка)
    |            И (ТаблицаОперации.КлючСвязи = ТаблицаВыходныеИзделия.КлючСвязиОперации)
    |ГДЕ
    |    ТаблицаВыходныеИзделия.Ссылка В(&МассивДокументов)
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ТаблицаМатериалыИУслуги.Ссылка КАК Ссылка,
    |    ТаблицаМатериалыИУслуги.НомерСтроки,
    |    ТаблицаМатериалыИУслуги.Номенклатура,
    |    ТаблицаМатериалыИУслуги.Номенклатура.Код КАК НоменклатураКод,
    |    ТаблицаМатериалыИУслуги.Номенклатура.Артикул КАК НоменклатураАртикул,
    |    ТаблицаМатериалыИУслуги.Номенклатура КАК Номенклатура,
    |    ТаблицаМатериалыИУслуги.Номенклатура.НаименованиеПолное КАК НоменклатураПредставление,
    |    ТаблицаМатериалыИУслуги.Характеристика.Наименование КАК ХарактеристикаПредставление,
    |    ВЫБОР
    |        КОГДА ТаблицаМатериалыИУслуги.Упаковка <> ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
    |            ТОГДА ПРЕДСТАВЛЕНИЕССЫЛКИ(ТаблицаМатериалыИУслуги.Упаковка.ЕдиницаИзмерения)
    |        ИНАЧЕ ПРЕДСТАВЛЕНИЕССЫЛКИ(ТаблицаМатериалыИУслуги.Номенклатура.ЕдиницаИзмерения)
    |    КОНЕЦ КАК ЕдиницаИзмеренияНаименование,
    |    ТаблицаМатериалыИУслуги.КоличествоУпаковок КАК Норматив,
    |    ВЫБОР
    |        КОГДА ТаблицаМатериалыИУслуги.Ссылка.Статус В (ЗНАЧЕНИЕ(Перечисление.СтатусыМаршрутныхЛистовПроизводства.КВыполнению),
    |                                                        ЗНАЧЕНИЕ(Перечисление.СтатусыМаршрутныхЛистовПроизводства.Выполняется),
    |                                                        ЗНАЧЕНИЕ(Перечисление.СтатусыМаршрутныхЛистовПроизводства.Выполнен))
    |            ТОГДА ТаблицаМатериалыИУслуги.КоличествоУпаковокФакт
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК Факт,
    |    ВЫБОР
    |        КОГДА ТаблицаМатериалыИУслуги.Ссылка.Статус В (ЗНАЧЕНИЕ(Перечисление.СтатусыМаршрутныхЛистовПроизводства.КВыполнению),
    |                                                        ЗНАЧЕНИЕ(Перечисление.СтатусыМаршрутныхЛистовПроизводства.Выполняется),
    |                                                        ЗНАЧЕНИЕ(Перечисление.СтатусыМаршрутныхЛистовПроизводства.Выполнен))
    |            ТОГДА ТаблицаМатериалыИУслуги.КоличествоУпаковокОтклонение
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК Отклонение,
    |    ЕСТЬNULL(ТаблицаОперации.НомерОперации, """") КАК НомерОперации,
    |    ЕСТЬNULL(ТаблицаОперации.Операция, НЕОПРЕДЕЛЕНО) КАК Операция
    |ИЗ
    |    Документ.МаршрутныйЛистПроизводства.МатериалыИУслуги КАК ТаблицаМатериалыИУслуги
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.МаршрутныйЛистПроизводства.Операции КАК ТаблицаОперации
    |        ПО (ТаблицаОперации.Ссылка = ТаблицаМатериалыИУслуги.Ссылка)
    |            И (ТаблицаОперации.КлючСвязи = ТаблицаМатериалыИУслуги.КлючСвязиОперации)
    |ГДЕ
    |    ТаблицаМатериалыИУслуги.Ссылка В(&МассивДокументов)
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ТаблицаОперации.Ссылка КАК Ссылка,
    |    ТаблицаОперации.Операция КАК Операция,
    |    ПРЕДСТАВЛЕНИЕССЫЛКИ(ТаблицаОперации.Операция)         КАК ОперацияПредставление,
    |    ТаблицаОперации.НомерОперации                         КАК НомерОперации,
    |    ТаблицаОперации.ВремяВыполнения                       КАК ВремяВыполнения,
    |    ТаблицаОперации.ВремяВыполненияЕдИзм                  КАК ВремяВыполненияЕдИзм,
    |    ТаблицаОперации.ПодготовительноеВремя                 КАК ПодготовительноеВремя,
    |    ТаблицаОперации.ПодготовительноеВремяЕдИзм            КАК ПодготовительноеВремяЕдИзм,
    |    ТаблицаОперации.ЗаключительноеВремя                   КАК ЗаключительноеВремя,
    |    ТаблицаОперации.ЗаключительноеВремяЕдИзм              КАК ЗаключительноеВремяЕдИзм
    |ИЗ
    |    Документ.МаршрутныйЛистПроизводства.Операции КАК ТаблицаОперации
    |ГДЕ
    |    ТаблицаОперации.Ссылка В(&МассивДокументов)";

    Запрос.УстановитьПараметр("МассивДокументов", МассивОбъектов);
    
    ТабличныйДокумент = Новый ТабличныйДокумент;
    ТабличныйДокумент.ПолеСлева = 5;
    ТабличныйДокумент.ПолеСправа = 5;
    ТабличныйДокумент.РазмерКолонтитулаСверху = 0;
    ТабличныйДокумент.РазмерКолонтитулаСнизу = 0;
    ТабличныйДокумент.АвтоМасштаб = Истина;
    ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    
    ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_МаршрутныйЛистНовый_МаршрутныйЛист";
    
    МассивРезультатов  = Запрос.ВыполнитьПакет();
    
    ДанныеПечати = МассивРезультатов[0].Выбрать();
    
    ТаблицаВыходныеИзделия = МассивРезультатов[1].Выгрузить();
    ТаблицаВыходныеИзделия.Индексы.Добавить("Ссылка");
    
    ТаблицаМатериалыИУслуги = МассивРезультатов[2].Выгрузить();
    ТаблицаМатериалыИУслуги.Индексы.Добавить("Ссылка");
    
    ТаблицаОперации = МассивРезультатов[3].Выгрузить();
    ТаблицаОперации.Индексы.Добавить("Ссылка");
    
      КолонкаКодов = ФормированиеПечатныхФорм.ИмяДополнительнойКолонки();
    
    ПервыйДокумент = Истина;
    
    Пока ДанныеПечати.Следующий() Цикл
    
        Если Не ПервыйДокумент Тогда
            ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
        
        ПервыйДокумент    = Ложь;
        НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
    
        // Выводим общие реквизиты шапки
        ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
        ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, ОбластьМакета, ДанныеПечати.Ссылка);
        ОбластьМакета.Параметры.Заполнить(ДанныеПечати);
        
        // Используем структуру для заполнения параметров, т.к. макет может изменяться пользователем
        ДополнительныеПараметрыОбластьМакета = Новый Структура;
        
        НомерДокумента = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(ДанныеПечати.Номер);
        ДополнительныеПараметрыОбластьМакета.Вставить("НомерДокумента", НомерДокумента);
        ДополнительныеПараметрыОбластьМакета.Вставить("ДатаДокумента", Формат(ДанныеПечати.Дата, "ДЛФ=D"));
        
        // РаспоряжениеПредставление
        НомерДокумента = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(ДанныеПечати.РаспоряжениеНомер);
        РаспоряжениеПредставление = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                                        НСтр("ru = '№%1 от %2 (код строки %3)'"),
                                        НомерДокумента,
                                        Формат(ДанныеПечати.Дата, "ДЛФ=D"),
                                        Формат(ДанныеПечати.КодСтроки, "ЧГ="));
                                        
        ДополнительныеПараметрыОбластьМакета.Вставить("РаспоряжениеПредставление", РаспоряжениеПредставление);
        
        Если Минута(ДанныеПечати.Начало) = 0
            И Час(ДанныеПечати.Начало) = 0
            И Минута(ДанныеПечати.Окончание) = 59
            И Час(ДанныеПечати.Окончание) = 23 Тогда
            
            ФорматПериода = "ДЛФ=D";
        Иначе
            ФорматПериода = "ДФ='dd.MM.yy ЧЧ:мм'";
        КонецЕсли;
        
        // НачатьНеРаньше
        НачатьНеРаньше = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                                                            НСтр("ru = '(не раньше %1)'"),
                                                            Формат(ДанныеПечати.Начало, ФорматПериода));
        
        ДополнительныеПараметрыОбластьМакета.Вставить("НачатьНеРаньше", НачатьНеРаньше);
        
        // СрокНеПозже
        СрокНеПозже = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                                                            НСтр("ru = '(не позже %1)'"),
                                                            Формат(ДанныеПечати.Окончание, ФорматПериода));
                                                            
        ДополнительныеПараметрыОбластьМакета.Вставить("СрокНеПозже", СрокНеПозже);
        
        // ИзделиеПредставление
        ИзделиеПредставление = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
                                    ДанныеПечати.НоменклатураПредставление,
                                    ДанныеПечати.ХарактеристикаПредставление);
                                    
        ДополнительныеПараметрыОбластьМакета.Вставить("ИзделиеПредставление", ИзделиеПредставление);
        
        // СпецификацияПредставление
        СпецификацияПредставление = ДанныеПечати.СпецификацияПредставление;
        Если ДанныеПечати.МногоэтапныйПроизводственныйПроцесс Тогда
            СпецификацияПредставление = СпецификацияПредставление + ", " + ДанныеПечати.ЭтапПредставление;
        КонецЕсли;
        ДополнительныеПараметрыОбластьМакета.Вставить("СпецификацияПредставление", СпецификацияПредставление);
        
        ОбластьМакета.Параметры.Заполнить(ДополнительныеПараметрыОбластьМакета);
        
        ТабличныйДокумент.Вывести(ОбластьМакета);
        
        НомерСтраницы = 1;
        
        // Создаем массив для проверки вывода
        МассивВыводимыхОбластей = Новый Массив;
                
                
        
        
        УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ДанныеПечати.Ссылка);
        
    КонецЦикла;
    
    Возврат ТабличныйДокумент;
    
КонецФункции



Тупо взял с маршрутного скопировал чуть подкорректировал и все, но выдает ошибку здесь
Функция СформироватьПечатнуюФорму(СсылкаНаОбъект, ОбъектыПечати)
        
    ТабличныйДокумент = Новый ТабличныйДокумент;
    МакетОбработки = ПолучитьМакет("МакетМаршрутныйЛист");

    ОбластьШапки = МакетОбработки.ПолучитьОбласть("Шапка");

    ОбластьШапки.Параметры.НомерДокумента = СсылкаНаОбъект.Номер;
    ОбластьШапки.Параметры.ДатаДокумента = Формат(СсылкаНаОбъект.Дата, "ДФ=dd.MM.yyyy; ДЛФ=DT" );
    ОбластьШапки.Параметры.ПодразделениеПредставление = СсылкаНаОбъект.Подразделение;
    ОбластьШапки.Параметры.ИзделиеПредставление = СсылкаНаОбъект.Номенклатура;
    ОбластьШапки.Параметры.СпецификацияПредставление = СсылкаНаОбъект.Спецификация;
    ОбластьШапки.Параметры.РаспоряжениеПредставление = СсылкаНаОбъект.Распоряжение;
    ОбластьШапки.Параметры.Назначение = СсылкаНаОбъект.Назначение;
                          
    
    
    ТабличныйДокумент.Вывести(ОбластьШапки);
    
    
    ОбластьСтроки = МакетОбработки.ПолучитьОбласть("СтрокаТЧ");
    
    Для Каждого ТекущаяСтрока Из СсылкаНаОбъект.РаспоряжениеСпецификация Цикл
            
        ОбластьСтроки.Параметры.НоменклатураПредставление = ТекущаяСтрока.Номенклатура;
        ОбластьСтроки.Параметры.Норматив = ТекущаяСтрока.Количество;
        
        ТабличныйДокумент.Вывести(ОбластьСтроки);
            КонецЦикла;
           ТабличныйДокумент.АвтоМасштаб = Истина;
          Возврат ТабличныйДокумент;
    
    

    
    
КонецФункции // СформироватьПечатнуюФорму()



{ВнешняяОбработка.МаршрутныйНовый.МодульОбъекта(322)}: Поле объекта не обнаружено (Номер)
ОбластьШапки.Параметры.НомерДокумента = СсылкаНаОбъект.Номер;


как такое может быть

Только не ругайтесь я еще раз повторяюсь я учусь

salton Подменю пользователя
сообщение 28.09.17, 16:52
Сообщение #16

Говорящий
***
Группа: Пользователи
Сообщений: 92
Из: Полтава
Спасибо сказали: 24 раз
Рейтинг: 0

Цитата(XacTLa @ 28.09.17, 17:18) *
как такое может быть

такое может быть.. очень даже....

Если СсылкаНаОбъект - это не документ, то и номера там не может быть...

Смотрите внимательно -

Функция
СформироватьПечатнуюФорму(СсылкаНаОбъект, ОбъектыПечати)
вызывается из процедуры
Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода)


В процедуре Печать функция вызывается с двумя параметрами
СформироватьПечатнуюФорму(ОбъектПечати, ОбъектыПечати))
. При этом
 ОбъектПечати
- это элемент массива МассивОбъектов, в который Вы должны передать документы, для которых хотите распечатать маршрутные листы.

Из этого следует -
Если не заполнить МассивОбъектов, то процедуре нечего будет перебирать в этом массиве. И момент вызова функции
СформироватьПечатнуюФорму(СсылкаНаОбъект, ОбъектыПечати)
параметр СсылкаНаОбъект будет пустым


И естественно, что когда доходит дело до заполнения параметров печатной формы ОбластьШапки.Параметры.НомерДокумента = СсылкаНаОбъект.Номер получается ошибка.

Поэтому Вас и попросили сообщить что в МассивОбъектов находится.
Не поленитесь - воспользуйтесь отладкой. Или выложите код где явно видно чем заполняется этот массив

logist Подменю пользователя
сообщение 28.09.17, 17:26
Сообщение #17

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(salton @ 28.09.17, 17:52) *
Или выложите код где явно видно чем заполняется этот массив

Что толку смотреть на код, если не понятно как он вызывается. Нужно смотреть отладчик, что в массиве, это решает все вопросы без гаданий на коде.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

salton Подменю пользователя
сообщение 29.09.17, 7:19
Сообщение #18

Говорящий
***
Группа: Пользователи
Сообщений: 92
Из: Полтава
Спасибо сказали: 24 раз
Рейтинг: 0

Цитата(logist @ 28.09.17, 18:26) *
если не понятно как он вызывается. Нужно смотреть отладчик, что в массиве

кажется мне что нет смысла ни смотреть код ни отладчиком массив - так как нету кода.... фишку с передачей массива в параметр печати придумали вы. А вот сам код формирования массива ему никто не написал)))

XacTLa Подменю пользователя
сообщение 29.09.17, 9:34
Сообщение #19

Говорящий
***
Группа: Пользователи
Сообщений: 99
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Функция ПечатьВнешнейПечатнойФормы(МассивОбъектов, ОбъектыПечати) Экспорт
    ТабДок = новый ТабличныйДокумент;
    
    Макет = ПолучитьМакет("МакетМаршрутныйЛист");
    
    ОбластьШапки   = Макет.ПолучитьОбласть("Шапка");
    ОбластьСтрокаТЧ  = Макет.ПолучитьОбласть("СтрокаТЧ");
        
    Запрос = новый запрос;
    Запрос.УстановитьПараметр("МассивОбъектов",МассивОбъектов);
    Запрос.Текст = "ВЫБРАТЬ
    |    МаршрутныйЛистПроизводства.Номер,
    |    МаршрутныйЛистПроизводства.Дата,
    |    МаршрутныйЛистПроизводства.Распоряжение,
    |    МаршрутныйЛистПроизводства.Распоряжение.Номер КАК РаспоряжениеНомер,    
    |    МаршрутныйЛистПроизводства.Распоряжение.Дата КАК РаспоряжениеДата,
    |    МаршрутныйЛистПроизводства.КодСтроки КАК КодСтроки,
    |    МаршрутныйЛистПроизводства.Спецификация КАК Спецификация,
    |    МаршрутныйЛистПроизводства.Спецификация.Представление КАК СпецификацияПредставление,
    |    МаршрутныйЛистПроизводства.Подразделение КАК Подразделение,
    |    МаршрутныйЛистПроизводства.Назначение КАК Назначение
    |ИЗ
    |    Документ.МаршрутныйЛистПроизводства КАК МаршрутныйЛистПроизводства
    |ГДЕ
    |    МаршрутныйЛистПроизводства.Ссылка В(&МассивОбъектов)
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    МаршрутныйЛистПроизводства.Номер,
    |    МаршрутныйЛистПроизводства.Дата,
    |    МаршрутныйЛистПроизводства.Распоряжение,
    |    МаршрутныйЛистПроизводства.Распоряжение.Номер КАК РаспоряжениеНомер,    
    |    МаршрутныйЛистПроизводства.Распоряжение.Дата КАК РаспоряжениеДата,
    |    МаршрутныйЛистПроизводства.КодСтроки КАК КодСтроки,
    |    МаршрутныйЛистПроизводства.Спецификация КАК Спецификация,
    |    МаршрутныйЛистПроизводства.Спецификация.Представление КАК СпецификацияПредставление,
    |    МаршрутныйЛистПроизводства.Подразделение КАК Подразделение,
    |    МаршрутныйЛистПроизводства.Назначение КАК Назначение
    |ИЗ
    |    Документ.МаршрутныйЛистПроизводства КАК МаршрутныйЛистПроизводства
    |ГДЕ
    |    МаршрутныйЛистПроизводства.Ссылка В(&МассивОбъектов)      
    |
    |УПОРЯДОЧИТЬ ПО
    |    Ссылка";
    
    ОбщаяВыборка = Запрос.Выполнить().Выгрузить();
    
    Для Каждого СсылкаНаОбъект из МассивОбъектов Цикл
        
        ОбластьШапки.Параметры.ТекстЗаголовка = "Маршрутный лист №  "+СсылкаНаОбъект.Номер;
        ОбластьШапки.Параметры.ТекстЗаголовка = "Дата"+СсылкаНаОбъект.Дата;
        
        ТабДок.Вывести(ОбластьШапки);
        
        Отбор = Новый Структура;
        Отбор.Вставить("Ссылка",СсылкаНаОбъект);
        
        Выборка = ОбщаяВыборка.НайтиСтроки(Отбор);
        
        ИтогоСумма      = 0;
        ИтогоКоличество = 0;
        
        Для Каждого Стр из Выборка Цикл
            ЗаполнитьЗначенияСвойств(ОбластьСтрокаТЧ.Параметры,Стр);
            
            ИтогоСумма = ИтогоСумма + Стр.Сумма;
            ИтогоКоличество = ИтогоКоличество + Стр.Количество;
            
            ТабДок.Вывести(ОбластьСтрокаТЧ);
        КонецЦикла;
        
        
                
        ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
    КонецЦикла;
    
    Возврат ТабДок;
КонецФункции


как то так

При таком коде ругается на
ОбщаяВыборка = Запрос.Выполнить().Выгрузить();


{ВнешняяОбработка.МаршрутныйНовый.МодульОбъекта(100)}: Ошибка при вызове метода контекста (Выполнить)
ОбщаяВыборка = Запрос.Выполнить().Выгрузить();
по причине:
{(36, 2)}: В случае использования операторов ОБЪЕДИНИТЬ, поля предложений УПОРЯДОЧИТЬ ПО и ИТОГИ ПО должны находиться в списке выбора.
<<?>>Ссылка

salton Подменю пользователя
сообщение 29.09.17, 10:58
Сообщение #20

Говорящий
***
Группа: Пользователи
Сообщений: 92
Из: Полтава
Спасибо сказали: 24 раз
Рейтинг: 0

XacTLa @ Сегодня, 10:34 * ,
ДОлжно быть в запросе не:

    |УПОРЯДОЧИТЬ ПО
    |    Ссылка";


а

    |УПОРЯДОЧИТЬ ПО
    |    МаршрутныйЛистПроизводства.Ссылка";


Цитата(XacTLa @ 29.09.17, 10:34) *
как то так

оно и понятно шо "как-то так..." но, вопрос остается - что вы передаете в МассивОбъектов при выполнении функции
 ПечатьВнешнейПечатнойФормы(МассивОбъектов, ОбъектыПечати)
????

это должен быть перечень документов МаршрутныйЛистПроизводства...

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


3 страниц V   1 2 3 >
Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 21:28
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!