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

Хранилище

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

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



> Не удалось сформировать внешнюю печатную форму! Поле объекта не обнаружено (НоменклатураКод)          
star Подменю пользователя
сообщение 14.11.14, 10:56
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 41
Из: Мариуполь
Спасибо сказали: 3 раз
Рейтинг: 0

Добрый день. Общепит, редакция 8, украинская версия на базе "Бухгалтерия для Украины", редакция 1.2 Нужна помощь в изменении печатной формы документа. Необходимо вывести колонку код из справочника номенклатуры.
В 1С печатная форма не формируется – ошибка «Не удалось сформировать внешнюю печатную форму! Поле объекта не обнаружено (НоменклатураКод)».

Модуль объекта

Функция ПечатьПеремещениеТоваров()

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

    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПеремещениеТоваров_Накладная";
    Макет       = ПолучитьМакет("Накладная");
    
    // печать производится на языке, указанном в настройках пользователя
    КодЯзыкаПечать = Локализация.ПолучитьЯзыкФормированияПечатныхФорм(УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "РежимФормированияПечатныхФорм"));
    Макет.КодЯзыкаМакета = КодЯзыкаПечать;
    мУчетВПродажныхЦенах=Истина;
    мВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить();
    СкладНТТ = Шапка.ОтправительНТТ ИЛИ Шапка.ПолучательНТТ;
    ЕстьЦена = мУчетВПродажныхЦенах И НЕ (СсылкаНаОбъект.Ссылка.СкладОтправитель.ВидСклада = Перечисления.ВидыСкладов.Оптовый И СсылкаНаОбъект.Ссылка.СкладПолучатель.ВидСклада = Перечисления.ВидыСкладов.Оптовый);
    ЕстьЦена = Истина;
    ТаблицаСуммСписания = БухгалтерскийУчет.ПолучитьСуммуСписанияАктивов(СсылкаНаОбъект);//!,,МассивСчетовИсключения);  проверить с общими модулем

    // Выводим шапку накладной

    ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
    ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, НСтр("ru='Накладная на перемещение';uk='Накладна на переміщення'",КодЯзыкаПечать),КодЯзыкаПечать);
    ТабДокумент.Вывести(ОбластьМакета);

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

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

    ОбластьШапки  = "ШапкаТаблицы";
    ОбластьСтроки = "Строка";

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

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

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

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

        Если ВыводитьКоды Тогда
            Если Колонка = "НоменклатураКод" Тогда
                ОбластьКодов.Параметры.НоменклатураКод = ВыборкаСтрокТовары.НоменклатураКод;
            Иначе
                ОбластьКодов.Параметры.НоменклатураКод = ВыборкаСтрокТовары.Код;
            КонецЕсли;
            ТабДокумент.Присоединить(ОбластьКодов);
        КонецЕсли;
        
        ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокТовары);
        ОбластьДанных.Параметры.Товар = СокрЛП(ВыборкаСтрокТовары.Товар);
        ТабДокумент.Присоединить(ОбластьДанных);
        Если ЕстьЦена Тогда
            //Определим цену для розницы в продажных ценах
            КоличествоТов = ВыборкаСтрокТовары.Количество;
            ЦенаПеремещения = 0;
            Если (ВыборкаСтрокТовары.ID = 1) И СкладНТТ Тогда
                ЦенаПеремещения = ВыборкаСтрокТовары.Цена;
            ИначеЕсли (ВыборкаСтрокТовары.ID = 1) Тогда
                //один из складов - розничный
                Склад = ?(СсылкаНаОбъект.Ссылка.СкладОтправитель.ВидСклада = Перечисления.ВидыСкладов.Розничный, СсылкаНаОбъект.Ссылка.СкладОтправитель, СсылкаНаОбъект.Ссылка.СкладПолучатель);
                ЦенаПеремещения = Ценообразование.ПолучитьЦенуНоменклатуры(ВыборкаСтрокТовары.Номенклатура, Склад.ТипЦенРозничнойТорговли,
                                                                            СсылкаНаОбъект.Ссылка.Дата, мВалютаРегламентированногоУчета, 1, 1);
            КонецЕсли;
            СтрокаСуммСписания =  ТаблицаСуммСписания.Найти(ВыборкаСтрокТовары.Номенклатура ,"Номенклатура");
            Если СтрокаСуммСписания = Неопределено Тогда
                //ЦенаПеремещения = 0;
                //Сумма = 0;
                Сумма = ЦенаПеремещения * КоличествоТов;
            Иначе
                ЦенаПеремещения = ?(ВыборкаСтрокТовары.Количество = 0, 0, СтрокаСуммСписания.Сумма / ВыборкаСтрокТовары.Количество);
                Сумма = ЦенаПеремещения * ВыборкаСтрокТовары.Количество;
            КонецЕсли;
            
            ОбластьЦены.Параметры.Цена  = ЦенаПеремещения;
            ОбластьЦены.Параметры.Сумма = Сумма;
            ТабДокумент.Присоединить(ОбластьЦены);
            ИтогоСумма = ИтогоСумма + Сумма;
        КонецЕсли;

        НС = НС + 1;
    КонецЦикла;

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

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

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

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


Я, к сожалению, не программист, но очень хочу научиться. Буду благодарна если скинете ссылки на самоучители или что-то подобное.


 ! 

Правила: 3, 4
 


Сообщение отредактировал Vofka - 14.11.14, 16:06

Petre Подменю пользователя
сообщение 14.11.14, 11:14
Сообщение #2

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

Что содержит константа "ДополнительнаяКолонкаПечатныхФормДокументов"?


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

star Подменю пользователя
сообщение 14.11.14, 11:33
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 41
Из: Мариуполь
Спасибо сказали: 3 раз
Рейтинг: 0

Цитата(Petre @ 14.11.14, 11:14) *
Что содержит константа "ДополнительнаяКолонкаПечатныхФормДокументов"?


Я не знаю 09000000.gif Такая функция есть в типовом модуле объекта документа "Перемещение товаров"

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

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

Это не программирование, это - пользовательский режим. Без его понимания о программировании очень рано говорить.
Откройте меню "Сервіс / Настройка програми" и в закладке "Друк" посмотрите, чему равен реквизит "Додаткова колонка друкованих форм документів".


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

Спасибо сказали: star,

star Подменю пользователя
сообщение 14.11.14, 12:08
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 41
Из: Мариуполь
Спасибо сказали: 3 раз
Рейтинг: 0

Цитата(Petre @ 14.11.14, 11:50) *
Это не программирование, это - пользовательский режим. Без его понимания о программировании очень рано говорить.
Откройте меню "Сервіс / Настройка програми" и в закладке "Друк" посмотрите, чему равен реквизит "Додаткова колонка друкованих форм документів".

Гиии спасибо большое!!! Все элементарно просто, а я мудрю который день. Стыдно, что не знала этого 32542620.gif

mister-x Подменю пользователя
сообщение 14.11.14, 21:27
Сообщение #6

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1417 раз
Рейтинг: 0

Цитата(star @ 14.11.14, 10:56) *
Буду благодарна если скинете ссылки на самоучители или что-то подобное.

в нас тут ціла тема є

Спасибо сказали: star,

star Подменю пользователя
сообщение 15.11.14, 11:55
Сообщение #7

Общительный
**
Группа: Пользователи
Сообщений: 41
Из: Мариуполь
Спасибо сказали: 3 раз
Рейтинг: 0

Цитата(mister-x @ 14.11.14, 21:27) *

Ага я видела спасибки 64000000.gif

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


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

 

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