Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
23 ноя 2024, 00:20

Печатная форма

Автор red14_88, 22 янв 2011, 17:07

0 Пользователей и 1 гость просматривают эту тему.

red14_88

Платформа 1С Предприятие 7.70.027
конфа Комплексная 7.70.501

Задача - получить печатную форму документа "Реализация", содержащую таблицу, состоящую из Номенклатуры, ее количества, и "сертификата". Где "Сертификат" это дополнительный реквизит в табличной части документа ПоступлениеТМЦРозница. Сертификат - это элемент справочника сертификатов, содержащего всего 3 текстовых поля и одно поле Дата.

Собственно проблема в получении и выгрузке данных в печатную форму, раньше работал только с восьмёркой.

Что нашёл: в строке как приходного, так и расходного документов, есть реквизит "Партия" одного и того же типа.

Вопросы:
1.как составить запрос, вытаскивающий нужные мне данные?
2.как эти данные из запроса выгрузить в печатную форму (саму форму создал)?

Заранее всем спасибо.

red14_88

Вопрос №2 снят. Вопрос №1 совсем непонятен, как без соединений в базе получить данные...

prog1c7.7

//если модуль внутри формы документа, то
выбратьстроки()
Пока получитьстроку() = 1 Цикл
......
......
......
Конеццикла;

red14_88

Цитата: prog1c7.7 от 22 янв 2011, 19:38
//если модуль внутри формы документа, то
выбратьстроки()
Пока получитьстроку() = 1 Цикл
......
......
......
Конеццикла;
Пишу так :

ВыбратьСтроки ();     
НПП = 0;
Пока ПолучитьСтроку () = 1 Цикл
    УПартия = Партия;
УНоменклатура = Номенклатура;
ТекстЗапроса = "
|Партия = Документ.ПоступлениеТМЦРозница.Партия;
|Сертификат = Документ.ПоступлениеТМЦРозница.Сертификат;
|Группировка Партия;
|Условие(Партия = УПартия);
|Условие(Номенклатура = УНоменклатура);
|";
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
Пока Запрос.Группировка(1) = 1 Цикл
НПП = НПП +1;
ПечТабл.ВывестиСекцию("Строка");
КонецЦикла;                        

КонецЦикла;

Но запрос не выполняется..

red14_88

Цитата: sergejK74 от 22 янв 2011, 19:53
В учетной политике какой метод учета себестоимости прописан?
Где это можно посмотреть?

з.ы. как можно своё  сообщение отредактировать? а то билиберда получилась

red14_88

2 prog1c7.7:

ВыбратьСтроки ();     
НПП = 0;
Пока ПолучитьСтроку () = 1 Цикл
    УПартия = Партия;
УНоменклатура = Номенклатура;
ТекстЗапроса = "
|Партия = Документ.ПоступлениеТМЦРозница.Партия;
|Сертификат = Документ.ПоступлениеТМЦРозница.Сертификат;
|Группировка Партия;
|Условие(Партия = УПартия);
|Условие(Номенклатура = УНоменклатура);
|";
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
Пока Запрос.Группировка(1) = 1 Цикл
НПП = НПП +1;
ПечТабл.ВывестиСекцию("Строка");
КонецЦикла;                        

КонецЦикла;

Так пишу, а не запрос, скорее всего, неверен.

red14_88

Используется FIFO

з.ы. при подстановке тегов кода опера показывает страшную ересь, IE немного лучше ( прошу прощения

red14_88

Цитата: sergejK74 от 22 янв 2011, 20:58
Для проведенного документа выбираешь движения регистра ПартииНаличие (бери именно не перебором строк, т.к. возможно что реализуется товар из разных партий).
Из движения регистров добираешься до справочника Партии, через него в документ прихода, а там уже и до сертификата рукой подать.
Спасибо, буду пробовать, но примерчик не помешал бы совсем, особенно как мне указать условие отбора из нужного регистра.

red14_88

Сертификат прикручен к приходному документу, как реквизит табличной части (как цена, партия и тд)

Пишу так:
############################################
   НПП = 0;               
   Рег=СоздатьОбъект("Регистр.ПартииНаличие");
   Если Рег.ВыбратьДвиженияДокумента(ТекущийДокумент())=1 Тогда
      Пока Рег.ПолучитьДвижение()=1 Цикл
         Партия = Рег.Партия;
         УНоменклатура = Рег.Номенклатура;
         Если ПустоеЗначение(Партия.ПриходныйДокумент)=0 Тогда
            ПриходныйДокумент = (Партия.ПриходныйДокумент);
         Иначе
            ПриходныйДокумент = "";
         КонецЕсли; 
         
         //Сообщить("123"+ПриходныйДокумент);
         
         ТекстЗапроса ="
            |Без итогов;
            |ТекущийДокумент = Документ.ПоступлениеТМЦРозница.ТекущийДокумент;
            |Номенклатура = Документ.ПоступлениеТМЦРозница.Номенклатура;
            |Партия = Документ.ПоступлениеТМЦРозница.Партия;
            |Сертификат = Документ.ПоступлениеТМЦРозница.Сертификат;
            |Группировка Партия;
            |Условие(ТекущийДокумент = ПриходныйДокумент);
            |Условие(Номенклатура = УНоменклатура);
            |";
         Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
            Возврат;
         КонецЕсли;
          Пока Запрос.Группировка(1) = 1 Цикл     
            НПП = НПП +1;
            ПечТабл.ВывестиСекцию("Строка");
         КонецЦикла;
         
      КонецЦикла;
   КонецЕсли;
############################################

red14_88

Но выборка пустая...

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск