Имя: Пароль:
1C
1С v8
В Обработчике печати не был сформирован табличный документ
,
0 Skaliy_art
 
28.07.16
10:07
1С:Предприятие 8.3 (8.3.7.1860)
Бухгалтерия предприятия, редакция 3.0 (3.0.41.51)

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

Задача простая: в разделе кассовые документы добавить печатный макет расходного кассового ордера, где не будет автоматически проставлены ФИО Директора, главбуха и кассира.

С помощью гугла я сделал обработку и использовал в качестве макета, встроенный макет ПФ_MXL_KO2 и после того, как вставил его в обработку, удалил ненужные поля. В синтаксисе ошибок нет.
Затем добавил обработку в 1С, и при выборе печатной формы выдаётся ошибка "В обработчике печати не был сформирован табличный документ для:ПФ_MXL_KO2"

Вот обработка: https://yadi.sk/d/wEcGzqMcthE9D
1 _stay true_
 
28.07.16
10:16
"Удалил ненужные поля".

Видимо, лишнего наудалял. Какой-то параметр по коду пытается заполнится "в лоб", а его уже нет в макете - вот и ошибка.

То, что "синтаксисе ошибок нет", ещё не говорит о том, что код корректный. Какие конкретно поля удалил из макета и код процедуры формирования таб.дока в студию.

P.S: если надеешься, что кто-то скачает обработку, сделает всю работу за тебя и зальёт обратно - ты ошибаешься. Разобраться поможем.
2 Skaliy_art
 
28.07.16
10:27
(1) Поля которые удалил в макете: <ДолжностьРуководителя>, <ФИОРуководителя>, <ФИОГлавногобухгалтера> и <ФИОКассира>.
Так же удалил строки, где они упоминаются в функции ПечатьРКО.
А вот процедуры формирование таб.дока у меня нет.
Есть процедуры "ДобавитьКоманду" и "Печать".

И ссылка на обработку я дал как раз, чтобы код посмотрели весь, чтобы не копировать его сюда =/
3 _stay true_
 
28.07.16
10:35
(2) Вот у меня прокся на работе не даёт скачивать файлы. Как быть?

А описание внешней обработки ,получить таблицу команд и прочие технологические вещи почему не написал?

ПечатьРКО - и есть ФУНКЦИЯ формирования табличного документа.
4 _stay true_
 
28.07.16
10:38
И совершенно не понятно, зачем ты их удалил: чтобы просто свой текст написать? Лучше бы прошелся по коду, нашел область, в которой выводятся эти данные, и подменил на свои.

Вариант два: не заполнены ответственные лица организации в базе. Заполнить их - и будет счастье.

Вариант 3: что-то пропустил при правке кода.
5 singlych
 
28.07.16
10:50
Ну я скачал :) Но проверять, переделывать и заливать обратно, конечно, не буду.

Все не смотрел. Не уверен, но помнится, идентификатор команды в параметрах регистрации вроде как должен совпадать с именем макета в ВывестиТабдокВКоллекцию.
И, блин, используй форматирование.

офтоп: Кстати, что за прикол в последнее время - качал несколько п/ф, а в них постоянно безопасный режим стоит в ложь и перед формированием табдока устанавливается привилегированный? Это мода такая?
6 Skaliy_art
 
29.07.16
05:29
(3) Не могу приложить коды, постоянно ругается на фильтр удафком (хотя ставлю в тега 1С).

По поводу "почему именно так" решил выполнить задачу: в базе работают кассиры и бухгалтера. Когда бухгалтер печатает РКО - у неё должно проставляться автоматически ФИО всех ответственных лиц (они и проставляются). Кассир сейчас работает по тому же принципу, но при печати РКО - ручками постоянно удаляет ФИО, так как по указу "свыше" сказали, чтобы их не было видно.
Вот я и решил сделать два макета РКО - один для бухов, другой для кассиров.
7 Skaliy_art
 
29.07.16
05:29
(5) (5) Правильно ли я поправил код, согласно вашему замечанию?

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "РКО-2 Кассир") Тогда
        
        // Формируем табличный документ и добавляем его в коллекцию печатных форм.
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "РКО-2 Кассир", "РКО-2 для кассиров",
            ПечатьРКО(МассивОбъектов, ОбъектыПечати),, "ОбщийМакет.ПФ_MXL_КО2");
    КонецЕсли;

ОбщегоНазначенияБП.ЗаполнитьДополнительныеПараметрыПечати(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);


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


PS не понятно про форматирование и офтоп =) Пока только начал изучение
8 Skaliy_art
 
29.07.16
05:30
(4) Функция СведенияОВнешнейОбработке()  экспорт
ПараметрыРегистрации = Новый Структура;
МассивНазначений = Новый Массив;
МассивНазначений.Добавить("Документ.РасходныйКассовыйОрдер"); //Указываем документ к которому делаем внешнюю печ. форму
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов...
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
ПараметрыРегистрации.Вставить("Наименование", "РКО-2 Кассир"); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("Информация", "РКО-2 для кассиров");
ТаблицаКоманд = Получить Таблицу Команд(); //тут без пробелов - обошел фильтр удафком)
ДобавитьКоманду(ТаблицаКоманд, "РКО-2 Кассир", "ПФ_MXL_КО2", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

Возврат ПараметрыРегистрации;
КонецФункции
9 Skaliy_art
 
29.07.16
05:31
(4) Функция Получить Таблицу Команд() //и тут без пробелов
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));//как будет выглядеть описание печ.формы для пользователя
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); //имя макета печ.формы
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); //ВызовСерверногоМетода
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
10 Горогуля
 
29.07.16
05:34
имхается мне, вот это: ПечатьРКО(МассивОбъектов, ОбъектыПечати) не выдаёт табдокумент
11 Skaliy_art
 
29.07.16
05:45
(10) Я скопировал эту функцию из модуля объекта документа РКО
12 Горогуля
 
29.07.16
05:47
(11) это хорошо или плохо?
так сделай:
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.Область(2, 2).Текст="йо-хо-хо";
    Возврат ТабДокумент;
13 Горогуля
 
29.07.16
06:00
ну и почерк у тебя. поищу пока вечно живую цитату про Легкоступова.. ты в именах макета начудил. рабочий вариант:
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПФ_MXL_КО2") Тогда
        
        // Формируем табличный документ и добавляем его в коллекцию печатных форм.
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПФ_MXL_КО2", "Расходный кассовый ордер",
            ПечатьРКО(МассивОбъектов, ОбъектыПечати),, "ОбщийМакет.ПФ_MXL_КО2");
    КонецЕсли;
14 Горогуля
 
29.07.16
06:01
— Легкоступов,… ты знаешь, какая у тебя фамилия? Легкоступов, то есть, лёгкий, можно сказать, воздушный… Ты чё написал?! Тельняшка через букву «и», шинель через букву «е», ботинки вообще!.. Ты чего, Легкоступов?! Ты слушай меня, Легкоступов. В русском языке есть слова, их там много. Когда их составляешь вместе, получается предложение, где есть сказуемое, подлежащее и прочая светотень. И всё это – великий русский язык, Легкоступов. Ты меня понял?!

— Так точно, товарищ командир!

— Так вот, у нас великий русский язык! В нём переставь местоимение, сказуемое и подлежащее, и появится интонация!: «Наша Маша горько плачет.», или «Плачет наша Маша горько». Ты понимаешь?!, это ж поэзия!, это ж былины, мамкина норка!!.. А есть вообще предложения в одно слово: «Моросит», «Вечереет», «Смеркается»… Ты чувствуешь?

— Так точно, товарищ командир!

— Ни хрена ты не чувствуешь! Когда я читаю, что ты написал, я чешусь в самых нескромных местах! Тут же член можно сломать пока до конца абзаца доберёшься ! Кто тебя учил?

— В школе.

— Покажи мне, и я разорву его, как тузик грелку.

— Я же говорю – в школе.

— А я что, за границей, что ли учился, Легкоступов?!

— Если б мне в школе так!.. доходчиво!.. Я б…

— Вольно…
(с) 72 метра
15 Skaliy_art
 
29.07.16
06:22
(13) Ошибку понял, всё получилось.
Вывод - нужно просто учить код и понимать о чем он =)
Спасибо!
16 Горогуля
 
29.07.16
06:23
(15) здесь не в коде дело, а в долбанутой системе БСП
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.