УТ 10.3 Нужно изменить печатную форму Перемещение товарв(создаю внешнюю печатную форму)

Новая тема
Показывать по 10 20 40 сообщений
"Сразу сообщу, я не программист, 1с 8.1 пользуюсь 1,5 года, до этого просто EXCEL,(я ИП, надоели кошмарно огромные файлы и т.д и т.п.)в общем купила, в общем за 1,5 года из меня выкачали дополнительно половину стоимости программы за якобы доработки и прочие радости,  Но так как деньги у меня не бюджетные, свои собственные, поэтому и осваиваю теперь программирование (учится всегда не поздно).Благодаря доброму инету и всем добрым людям потихоньку получается.Собственно успешно получилось сделать печатную форму для Отчета розничных продаж, теперь делаю дополнительную форму для документа "Перемещение товаров"  
Ну вот проблема, пишет ошибку, помогите голову сломала....
"Не удалось сформировать внешнюю печатную форму!
Ошибка при вызове метода контекста (Выполнить): {(9, 1)}: Синтаксическая ошибка "ИЗ"
<>ИЗ
строка {(9, 1)} выпадает на Номер


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

если нужен полностью модуль,напишу"
Перед ИЗ убрать запятую в предыдущей строке:
| СкладПолучатель.Представление  КАК Покупатель
Спасибо за подсказку, забыла написать, что новая печатная форма Перемещения товаров, скопирована из конфигурации, только мне надо таблицу из след . колонок №п/п, Код/Артикул, Товар, количество,что то получилось, по крайней мере в конфигурации синтакс.ошибок не дает., но как только запускаю как отчет пишет вот такую бяку:
Не удалось сформировать внешнюю печатную форму!
Преобразование значения к типу Число не может быть выполнено
Что это такое и как исправить ???
Значит идет преобразование к числу, а там не число.
Не видя текст, трудно сказать.
"
Функция Печать() Экспорт
   ПараметрыПечати = Новый Структура;

ТабДокумент = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("ПеремещениеСимКарт");
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка);

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

Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
ВыборкаСтрокТовары = Шапка.Товары.Выбрать();


// Выводим шапку накладной
ПараметрыПечати.Вставить("ТекстЗаголовка", ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, "Приложение.Передача абонентских номеров и SIM замена"));

ПараметрыПечати.Вставить("ПредставлениеПоставщика", Шапка.Поставщик);
ПараметрыПечати.Вставить("Поставщик", Шапка.СкладОтправитель);

ПараметрыПечати.Вставить("ПредставлениеПолучателя", Шапка.Покупатель);
ПараметрыПечати.Вставить("Получатель", Шапка.СкладПолучатель);

ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
ОбластьМакета.Параметры.Заполнить(ПараметрыПечати);
ТабДокумент.Вывести(ОбластьМакета);

ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
ОбластьМакета.Параметры.Заполнить(ПараметрыПечати);
ТабДокумент.Вывести(ОбластьМакета);

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



// Вывести табличную часть
ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул;
ПараметрыПечати.Вставить("ВыводитьКоды", Истина);
ПараметрыПечати.Вставить("ИмяКолонкиКодов", "Артикул");

// Выборка товаров
Пока ВыборкаСтрокТовары.Следующий() Цикл

ПараметрыПозиции = Новый Структура;
ПараметрыПозиции.Вставить("Номенклатура", ВыборкаСтрокТовары.Номенклатура);

Ном = Ном + 1;

ПараметрыПозиции.Вставить("НомерСтроки", Ном);

Если ПараметрыПечати.ВыводитьКоды Тогда
Если ПараметрыПечати.ИмяКолонкиКодов = "Артикул" Тогда
ПараметрыПозиции.Вставить("Артикул", ВыборкаСтрокТовары.Артикул);
Иначе
ПараметрыПозиции.Вставить("Артикул", ВыборкаСтрокТовары.Код);
КонецЕсли;
КонецЕсли;

ПараметрыПозиции.Вставить("Товар", ВыборкаСтрокТовары.Товар + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары));

ПараметрыПозиции.Вставить("Количество", ВыборкаСтрокТовары.Количество);
ПараметрыПозиции.Вставить("ЕдиницаИзмерения", ВыборкаСтрокТовары.ЕдиницаИзмерения);


КонецЦикла;


// Вывести табличную часть

ПараметрыПечати.Вставить("ШапкаТаблицы");
ПараметрыПечати.Вставить("ШапкаСтрока");


ОбластьНомера  = Макет.ПолучитьОбласть("ШапкаСтрока" + "|НомерСтроки");
ОбластьКодов   = Макет.ПолучитьОбласть("ШапкаСтрока" + "|КолонкаКодов");
ОбластьТовар   = Макет.ПолучитьОбласть("ШапкаСтрока" + "|Товар");
ОбластьДанных  = Макет.ПолучитьОбласть("ШапкаСтрока" + "|Данные");

ТабДокумент.Вывести(ОбластьНомера);
Если ПараметрыПечати.ВыводитьКоды Тогда
ОбластьКодов.Параметры.ИмяКолонкиКодов = ПараметрыПечати.ИмяКолонкиКодов;
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабДокумент.Присоединить(ОбластьТовар);
ОбластьКолонкаТовар = Макет.Область("Товар");
Если ПараметрыПечати.ВыводитьКоды Тогда
ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки
                                   + ?(ПараметрыПечати.ФлагПечатиМест, 0, Макет.Область("R14C5").ШиринаКолонки + Макет.Область("R14C6").ШиринаКолонки);
Иначе
ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки
                                   + Макет.Область("КолонкаКодов").ШиринаКолонки
                                   + ?(ПараметрыПечати.ФлагПечатиМест, 0, Макет.Область("R14C5").ШиринаКолонки + Макет.Область("R14C6").ШиринаКолонки);
КонецЕсли;

// Выборка товаров
Для каждого ПараметрыПозиции Из ПараметрыПечати.Позиции Цикл

Если НЕ ЗначениеЗаполнено(ПараметрыПозиции.Номенклатура) Тогда
Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
Продолжить;
КонецЕсли;

ОбластьНомера.Параметры.Заполнить(ПараметрыПозиции);
ТабДокумент.Вывести(ОбластьНомера);

Если ПараметрыПечати.ВыводитьКоды Тогда
ОбластьКодов.Параметры.Заполнить(ПараметрыПозиции);
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли;

ОбластьТовар.Параметры.Заполнить(ПараметрыПозиции);
ТабДокумент.Присоединить(ОбластьТовар);

КонецЦикла;

ОбластьДанных.Параметры.Заполнить(ПараметрыПозиции);
ТабДокумент.Присоединить(ОбластьДанных);

КонецФункции;
   
"
" // Выборка товаров
> Пока ВыборкаСтрокТовары.Следующий() Цикл
>
> ПараметрыПозиции = Новый Структура;
> ПараметрыПозиции.Вставить("Номенклатура", ВыборкаСтрокТовары.Номенклатура);
>
> Ном = Ном + 1;
>
> ПараметрыПозиции.Вставить("НомерСтроки", Ном);
>

что то здесь не так, что понять не смогла, ругается на это"
"ошибку нашла, сначало нет Ном = 0 ;
исправила, теперь ругается так
Не удалось сформировать внешнюю печатную форму!
Поле объекта не обнаружено (Характеристика)
и отправляет на общий модуль"
"В запросе нет выборки характеристки.
 Если характеристка не нужна, то заменить:
ПараметрыПозиции.Вставить("Товар", ВыборкаСтрокТовары.Товар + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары));
 на
ПараметрыПозиции.Вставить("Товар", ВыборкаСтрокТовары.Товар;
"
"Теперь пишет вот это:
Не удалось сформировать внешнюю печатную форму!
Поле объекта не обнаружено (Позиции)

и ссылается на это:
Для каждого ПараметрыПозиции Из ПараметрыПечати.Позиции Цикл

заново выкладываю код,
Функция Печать() Экспорт
   ПараметрыПечати = Новый Структура;

ТабДокумент = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("ПеремещениеСимКарт");
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка);

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

Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
ВыборкаСтрокТовары = Шапка.Товары.Выбрать();


// Выводим шапку накладной
ПараметрыПечати.Вставить("ТекстЗаголовка", ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, "Приложение.Передача абонентских номеров и SIM замена"));

ПараметрыПечати.Вставить("ПредставлениеПоставщика", Шапка.Поставщик);
ПараметрыПечати.Вставить("Поставщик", Шапка.СкладОтправитель);

ПараметрыПечати.Вставить("ПредставлениеПолучателя", Шапка.Покупатель);
ПараметрыПечати.Вставить("Получатель", Шапка.СкладПолучатель);

ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
ОбластьМакета.Параметры.Заполнить(ПараметрыПечати);
ТабДокумент.Вывести(ОбластьМакета);

ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
ОбластьМакета.Параметры.Заполнить(ПараметрыПечати);
ТабДокумент.Вывести(ОбластьМакета);

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



// Вывести табличную часть
ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул;
ПараметрыПечати.Вставить("ВыводитьКоды", Истина);
ПараметрыПечати.Вставить("ИмяКолонкиКодов", "Артикул");
ПараметрыПечати.Вставить("Товар");
ПараметрыПечати.Вставить("Количество");
ПараметрыПечати.Вставить("ЕдиницаИзмерения");
 Ном = 0 ;
// Выборка товаров
Пока ВыборкаСтрокТовары.Следующий() Цикл

ПараметрыПозиции = Новый Структура;
ПараметрыПозиции.Вставить("Номенклатура", ВыборкаСтрокТовары.Номенклатура);

Ном = Ном + 1;

ПараметрыПозиции.Вставить("НомерСтроки", Ном);
       ПараметрыПозиции.Вставить("Артикул", ВыборкаСтрокТовары.Артикул);
ПараметрыПозиции.Вставить("Товар", ВыборкаСтрокТовары.Товар);
       ПараметрыПозиции.Вставить("Количество", ВыборкаСтрокТовары.Количество);
ПараметрыПозиции.Вставить("ЕдиницаИзмерения", ВыборкаСтрокТовары.ЕдиницаИзмерения);

КонецЦикла;


// Вывести табличную часть

ПараметрыПечати.Вставить("ШапкаТаблицы");
ПараметрыПечати.Вставить("Строка");


ОбластьНомера  = Макет.ПолучитьОбласть("ШапкаТаблицы" + "|НомерСтроки");
ОбластьКодов   = Макет.ПолучитьОбласть("Шапкатаблицы" + "|КолонкаКодов");
ОбластьТовар   = Макет.ПолучитьОбласть("Шапкатаблицы" + "|Товар");
ОбластьДанных  = Макет.ПолучитьОбласть("Шапкатаблицы" + "|Данные");

ТабДокумент.Вывести(ОбластьНомера);
Если ПараметрыПечати.ВыводитьКоды Тогда
ОбластьКодов.Параметры.ИмяКолонкиКодов = ПараметрыПечати.ИмяКолонкиКодов;
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабДокумент.Присоединить(ОбластьТовар);
ОбластьКолонкаТовар = Макет.Область("Товар");
ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки
                                   + Макет.Область("КолонкаКодов").ШиринаКолонки;

// Выборка товаров
Для каждого ПараметрыПозиции Из ПараметрыПечати.Позиции Цикл

Если НЕ ЗначениеЗаполнено(ПараметрыПозиции.Номенклатура) Тогда
Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
Продолжить;
КонецЕсли;

ОбластьНомера.Параметры.Заполнить(ПараметрыПозиции);
ТабДокумент.Вывести(ОбластьНомера);

Если ПараметрыПечати.ВыводитьКоды Тогда
ОбластьКодов.Параметры.Заполнить(ПараметрыПозиции);
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли;

ОбластьТовар.Параметры.Заполнить(ПараметрыПозиции);
ТабДокумент.Присоединить(ОбластьТовар);


ОбластьДанных.Параметры.Заполнить(ПараметрыПозиции);
ТабДокумент.Присоединить(ОбластьДанных);

КонецЦикла;

КонецФункции;
"
"См. изменения с моим ником:
Ном = 0;
Позиции = Новый Массив; //Вьюн
// Выборка товаров
Пока ВыборкаСтрокТовары.Следующий() Цикл

ПараметрыПозиции = Новый Структура;
ПараметрыПозиции.Вставить("Номенклатура", ВыборкаСтрокТовары.Номенклатура);

Ном = Ном + 1;

ПараметрыПозиции.Вставить("НомерСтроки", Ном);
      ПараметрыПозиции.Вставить("Артикул", ВыборкаСтрокТовары.Артикул);
ПараметрыПозиции.Вставить("Товар", ВыборкаСтрокТовары.Товар);
      ПараметрыПозиции.Вставить("Количество", ВыборкаСтрокТовары.Количество);
ПараметрыПозиции.Вставить("ЕдиницаИзмерения", ВыборкаСтрокТовары.ЕдиницаИзмерения);

Позиции.Добавить(ПараметрыПозиции); //Вьюн

КонецЦикла;

ПараметрыПечати.Вставить("Позиции", Позиции); //Вьюн

// Вывести табличную часть

ПараметрыПечати.Вставить("ШапкаТаблицы");
ПараметрыПечати.Вставить("Строка");


ОбластьНомера  = Макет.ПолучитьОбласть("ШапкаТаблицы" + "|НомерСтроки");
ОбластьКодов   = Макет.ПолучитьОбласть("Шапкатаблицы" + "|КолонкаКодов");
ОбластьТовар   = Макет.ПолучитьОбласть("Шапкатаблицы" + "|Товар");
ОбластьДанных  = Макет.ПолучитьОбласть("Шапкатаблицы" + "|Данные");

ТабДокумент.Вывести(ОбластьНомера);
Если ПараметрыПечати.ВыводитьКоды Тогда
ОбластьКодов.Параметры.ИмяКолонкиКодов = ПараметрыПечати.ИмяКолонкиКодов;
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабДокумент.Присоединить(ОбластьТовар);
ОбластьКолонкаТовар = Макет.Область("Товар");
ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки
                                  + Макет.Область("КолонкаКодов").ШиринаКолонки;
//Вьюн{  
ТабДокумент.Присоединить(ОбластьДанных);

ОбластьНомера = Макет.ПолучитьОбласть("Строка" + "|НомерСтроки");
ОбластьКодов  = Макет.ПолучитьОбласть("Строка" + "|КолонкаКодов");
ОбластьТовар  = Макет.ПолучитьОбласть("Строка" + "|Товар");
ОбластьМест   = Макет.ПолучитьОбласть("Строка" + "|Мест");
ОбластьДанных = Макет.ПолучитьОбласть("Строка" + "|Данные");
//}Вьюн

// Выборка товаров
Для каждого ПараметрыПозиции Из ПараметрыПечати.Позиции Цикл

Если НЕ ЗначениеЗаполнено(ПараметрыПозиции.Номенклатура) Тогда
Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
Продолжить;
КонецЕсли;

ОбластьНомера.Параметры.Заполнить(ПараметрыПозиции);
ТабДокумент.Вывести(ОбластьНомера);

Если ПараметрыПечати.ВыводитьКоды Тогда
ОбластьКодов.Параметры.Заполнить(ПараметрыПозиции);
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли;

ОбластьТовар.Параметры.Заполнить(ПараметрыПозиции);
ТабДокумент.Присоединить(ОбластьТовар);

ОбластьДанных.Параметры.Заполнить(ПараметрыПозиции);
ТабДокумент.Присоединить(ОбластьДанных);

КонецЦикла;

Возврат ТабДокумент; //Вьюн

КонецФункции // Печать()
"
Читают тему
(гостей: 1)

Быстрый переход