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

Хранилище

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

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



> Маршрутный лист , Печатная форма 3 страниц V  < 1 2 3 >          
sava1 Подменю пользователя
сообщение 29.09.17, 11:55
Сообщение #21

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2688
Из: Проскуров
Спасибо сказали: 681 раз
Рейтинг: 659.7

XacTLa,
1. Зачем выбирать 2 экземпляра документа ?
2. Зачем поиск в результате запроса - у Вас уже все есть в выборке ?
3. Покажите код, где Вы формируете массив документов.

Сообщение отредактировал sava1 - 29.09.17, 11:57

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

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

Цитата(salton @ 29.09.17, 8:19) *
фишку с передачей массива в параметр печати придумали вы. А вот сам код формирования массива ему никто не написал)))

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


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

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

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

Да это верно я ее упустил, вот теперь сижу читаю как это сделать, спасибо за намеки)

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

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

Короче говоря я запутался массив мне уже не нужен, теперь я должен команду печати переделать?

Flexy Подменю пользователя
сообщение 04.10.17, 10:24
Сообщение #25

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Цитата(XacTLa @ 04.10.17, 9:39) *
Короче говоря я запутался массив мне уже не нужен

Нужен. В массиве выделенные в динамическом списке строки документов.
Цикл по массиву не нужен. Будет запрос в цикле в таком случае.

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

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

Ага ща

XacTLa Подменю пользователя
сообщение 04.10.17, 13:44
Сообщение #27

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

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


Это

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

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

Цитата(XacTLa @ 04.10.17, 14:44) *
Это

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


Процедура ПакетнаяПечать()
//получаем массив с документами

Для Каждого ЭлементМассива из Массив Цикл
       ГотовыйТабличныйДокумент = Печать(ЭлементМассива);
       ГотовыйТабличныйДокумент.Напечатать();
КонецЦикла;


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

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

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

salton @ Сегодня, 16:07 * ,
А говорили что цикл по массиву не нужен, и еще так и не понял верно я запрос указал или нет?

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

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

XacTLa @ 04.10.17, 15:58 * ,
Слишком много фактических параметров


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

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

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

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

XacTLa @ Сегодня, 11:56 * ,
дайте полную строку описания ошибки...


зы. по поводу использовать ли перебор/цикл по массиву - если Вы передадите в "СсылкаНаОбъект" сам Массив с доками, а в условии корректно укажите МаршрутныйЛистПроизводства.Ссылка в (&Ссылка) то естественно Вам перебор/цикл по Массиву не нужен )))

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

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

salton @ Сегодня, 14:34 * ,
{ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(221)}: Слишком много фактических параметров
ВнешняяОбработкаОбъект.Печать(

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

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

Цитата(XacTLa @ 06.10.17, 16:26) *
{ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(221)}: Слишком много фактических параметров
ВнешняяОбработкаОбъект.Печать(


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

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

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

salton @ Сегодня, 16:52 * ,
вот это полный текст, я захожу в конфигуратор, меня кидает на общий модуль. Я вообще в шоке.
на этот код :
Процедура ПечатьПоВнешнемуИсточнику(Ссылка, ПараметрыИсточника, КоллекцияПечатныхФорм,
    ОбъектыПечати, ПараметрыВывода) Экспорт
    
    Если Не ПолучитьФункциональнуюОпцию("ИспользоватьДополнительныеОтчетыИОбработки") Тогда
        Возврат;
    КонецЕсли;
    
    КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм(ПараметрыИсточника.ИдентификаторКоманды);
    
    ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();
    
    ОбъектыПечати = Новый СписокЗначений;
    
    ВнешняяОбработкаОбъект = ПолучитьОбъектВнешнейОбработки(Ссылка);
    
    Если ВнешняяОбработкаОбъект = Неопределено Тогда
        ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
            НСтр("ru = 'Внешняя обработка ""%1"" (тип ""%2"") не обслуживается подсистемой ""Дополнительные отчеты и обработки""'"),
            Строка(Ссылка),
            Строка(ТипЗнч(Ссылка)));
    КонецЕсли;
    
    ВнешняяОбработкаОбъект.Печать(
        ПараметрыИсточника.ОбъектыНазначения,
        КоллекцияПечатныхФорм,
        ОбъектыПечати,
        ПараметрыВывода);
    
    // Проверим, все ли макеты были сформированы
    Для Каждого Стр Из КоллекцияПечатныхФорм Цикл
        Если Стр.ТабличныйДокумент = Неопределено Тогда
            ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                НСтр("ru = 'В обработчике печати не был сформирован табличный документ для: %1'"),
                Стр.ИмяМакета);
            ВызватьИсключение(ТекстСообщенияОбОшибке);
        КонецЕсли;
        
        Стр.ТабличныйДокумент.КоличествоЭкземпляров = Стр.Экземпляров;
    КонецЦикла;

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


ошибка типо тут :
ВнешняяОбработкаОбъект.Печать(
        ПараметрыИсточника.ОбъектыНазначения,
        КоллекцияПечатныхФорм,
        ОбъектыПечати,
        ПараметрыВывода);

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

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

Цитата(XacTLa @ 06.10.17, 16:54) *
ошибка типо тут :
ВнешняяОбработкаОбъект.Печать(
        ПараметрыИсточника.ОбъектыНазначения,
        КоллекцияПечатныхФорм,
        ОбъектыПечати,
        ПараметрыВывода);

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

Petre Подменю пользователя
сообщение 06.10.17, 16:37
Сообщение #36

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

XacTLa @ Сегодня, 16:54 * ,
В модуле менеджера должна располагаться экспортная процедура "Печать" с пятью параметрами. Внутри этой процедуры исходя из полученных параметров осуществляется вызов локальных процедур печати.
Почему у вас процедура "Печать" имеет один параметр - не понятно.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

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

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

salton @ Сегодня, 17:31 * salton @ Сегодня, 17:31 * ,Что мне нужно сделать так?
Функция Печать(СсылкаНаОбъект, ПараметрыИсточника, КоллекцияПечатныхФорм,
    ОбъектыПечати, ПараметрыВывода) Экспорт
    ТабДок = новый ТабличныйДокумент;
    
    Макет = ПолучитьМакет("МакетМаршрутныйЛист");
    
    ОбластьШапки   = Макет.ПолучитьОбласть("Шапка");
    ОбластьСтрокаТЧ  = Макет.ПолучитьОбласть("СтрокаТЧ");
        
    ОбластьШапки.Параметры.ТекстЗаголовка                      = СсылкаНаОбъект.Номер;
    ОбластьШапки.Параметры.ТекстЗаголовка                      = СсылкаНаОбъект.Дата;
    ОбластьШапки.Параметры.ПодразделениеПредставление       = СсылкаНаОбъект.Подразделение;
    ОбластьШапки.Параметры.ИзделиеПредставление              = СсылкаНаОбъект.Номенклатура;
    ОбластьШапки.Параметры.СпецификацияПредставление         = СсылкаНаОбъект.Спецификация;
    ОбластьШапки.Параметры.РаспоряжениеПредставление         = СсылкаНаОбъект.Распоряжение;
    ОбластьШапки.Параметры.Назначение                         = СсылкаНаОбъект.Назначение;

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

XacTLa @ Сегодня, 17:44 * ,
Эта процедура такую же ошибку выводит.

Petre Подменю пользователя
сообщение 06.10.17, 16:57
Сообщение #38

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

XacTLa @ Сегодня, 17:45 * ,
Из какого документа вы печатаете?
Где располагается данная процедура?


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

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

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


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

Это функция печати которая вызывается из модуля - ВнешняяОбработкаОбъект.Печать(ПараметрыИсточника.ОбъектыНазначения,КоллекцияПечатныхФорм,ОбъектыПечати,ПараметрыВывода);
ПараметрыИсточника.ОбъектыНазначения - это раз
КоллекцияПечатныхФорм - это два
ОбъектыПечати - это три
ПараметрыВывода - это четыре.
Итого четыре параметра.

Четыре параметра - не пять. Потому Вы передавая функции излишнее или недостаточное количество параметров ставите ее в тупик.
Количество параметров должно быть равным!
Можно так Печать(ПараметрыИсточника.ОбъектыНазначения,,,) - если остальные параметры Вам не нужны.
При этом ПараметрыИсточника.ОбъектыНазначения - у Вас должен быть Ваш массив с доками.

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

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

Petre @ Вчера, 16:57 * ,
МаршрутныйЛистПроизводства

salton @ Вчера, 18:15 * ,
Я уже ставлю одну процедуру это "Ссылка на обьект" и все равно пишем много параметров

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


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

 

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