8.х Приходная накладная с розничными ценами

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем redmonkey, 31 мар 2009.

  1. TopicStarter Overlay
    redmonkey
    Offline

    redmonkey Опытный в 1С

    Регистрация:
    4 сен 2008
    Сообщения:
    133
    Симпатии:
    0
    Баллы:
    26
    при оформлении документа поступление товаров и услкг, можно распечатать "приход на розничные склады в ценах АТТ", в форме не все устраивает, хотел сделать на основе неё дополнительную печатную форму(добавить туда нужные пожписи, комментарии, поставщика....
    Скопировал макет, функцию формирования печатной формы из док-та поступление товаров и услуг...
    потом понял что приход на розничные склады в ценах АТТ общий макет, и не знаю где найти модуль, кот формирует, данный общий макет, если кто-то делал что-то подобное, помогите, хотя бы подскажите где можно посмотреть модуль заполняющий этот общий макет...оч надо..
  2. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Код:
    	ИначеЕсли ИмяМакета = "СерийныеНомера" Тогда
    ТабДокумент = УчетСерийныхНомеров.ПечатьСерийныхНомеров(Ссылка, "Товары");		
    ИначеЕсли ИмяМакета = "Бланк" Тогда
    ТабДокумент = ПечатьБланк(НаПринтер);
    ИначеЕсли ИмяМакета = "ПриходНаРозничныеСкладыВЦенахАТТ" Тогда
    // это тебя строчка не наводит на мысль, что заполнение нужно искать в модуле заполнения документов		
    ТабДокумент = ЗаполнениеДокументов.НапечататьПриходРасходСРозничныхСкладовВЦенахАТТ(Ссылка, мВалютаРегламентированногоУчета, Истина);
    КонецЕсли;
    
  3. TopicStarter Overlay
    redmonkey
    Offline

    redmonkey Опытный в 1С

    Регистрация:
    4 сен 2008
    Сообщения:
    133
    Симпатии:
    0
    Баллы:
    26
    мммм... в общих модулях?почемуто не нашел...можно поконкретней мне указать если не сложно? :unsure:
  4. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Рассказываю тебе страшный секрет. Ставишь курсор на название процедуры и нажимаешь F12 - перейти к определению.
    Сама процедура вот
    Код:
    Функция НапечататьПриходРасходСРозничныхСкладовВЦенахАТТ(Док, ВалютаРегламентированногоУчета, ЭтоПриход) Экспорт
    
    Если ЭтоПриход Тогда
    ТекстЗапросаКоличество = "ВЫБОР КОГДА РегТоварыВРознице.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
    |	   И РегТоварыВРознице.Количество > 0 ТОГДА
    |		РегТоварыВРознице.Количество
    |	КОГДА РегТоварыВРознице.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
    |	   И РегТоварыВРознице.Количество < 0 ТОГДА
    |		-РегТоварыВРознице.Количество
    |	ИНАЧЕ
    |		0
    |	КОНЕЦ";
    
    ТекстЗапросаСуммаПродажная = "ВЫБОР КОГДА РегТоварыВРознице.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
    |	   И РегТоварыВРознице.СуммаПродажная > 0 ТОГДА
    |		РегТоварыВРознице.СуммаПродажная
    |	КОГДА РегТоварыВРознице.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
    |	   И РегТоварыВРознице.СуммаПродажная < 0 ТОГДА
    |		-РегТоварыВРознице.СуммаПродажная
    |	ИНАЧЕ
    |		0
    |	КОНЕЦ";
    
    ТекстНетДвижений = "Данным документом не выполнен приход ни на один розничный склад!";
    
    ТекстВсегоПринятоОтпущено = "Всего принято ";
    ТекстПринялОтпустил = "Принял";
    Иначе
    ТекстЗапросаКоличество = "ВЫБОР КОГДА РегТоварыВРознице.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
    |	   И РегТоварыВРознице.Количество > 0 ТОГДА
    |		РегТоварыВРознице.Количество
    |	КОГДА РегТоварыВРознице.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
    |	   И РегТоварыВРознице.Количество < 0 ТОГДА
    |		-РегТоварыВРознице.Количество
    |	ИНАЧЕ
    |		0
    |	КОНЕЦ";
    
    ТекстЗапросаСуммаПродажная = "ВЫБОР КОГДА РегТоварыВРознице.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
    |	   И РегТоварыВРознице.СуммаПродажная > 0 ТОГДА
    |		РегТоварыВРознице.СуммаПродажная
    |	КОГДА РегТоварыВРознице.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
    |	   И РегТоварыВРознице.СуммаПродажная < 0 ТОГДА
    |		-РегТоварыВРознице.СуммаПродажная
    |	ИНАЧЕ
    |		0
    |	КОНЕЦ";
    
    ТекстНетДвижений = "Данным документом не выполнен расход ни с одного розничного склада!";
    
    ТекстВсегоПринятоОтпущено = "Всего отпущено ";
    ТекстПринялОтпустил = "Отпустил";
    КонецЕсли;
    
    Запрос = Новый Запрос("
    |ВЫБРАТЬ
    |	РегТоварыВРознице.Склад КАК Склад,
    |	РегТоварыВРознице.Номенклатура.Представление КАК Номенклатура,
    |	РегТоварыВРознице.Номенклатура.ЕдиницаХраненияОстатков.Представление КАК ЕдиницаИзмерения,
    |	РегТоварыВРознице.ХарактеристикаНоменклатуры.Представление КАК Характеристика,
    |	РегТоварыВРознице.СерияНоменклатуры.Представление КАК Серия,
    |	РегТоварыВРознице.Качество.Представление КАК Качество,
    |	Сумма(" + ТекстЗапросаКоличество + ") КАК Количество,
    |	Сумма(" + ТекстЗапросаСуммаПродажная + ") КАК СуммаПродажная
    |ИЗ
    |	РегистрНакопления.ТоварыВРознице КАК РегТоварыВРознице
    |ГДЕ
    |	РегТоварыВРознице.Регистратор = &Док
    |	И РегТоварыВРознице.Активность
    |СГРУППИРОВАТЬ ПО
    |	РегТоварыВРознице.Склад,
    |	РегТоварыВРознице.Номенклатура,
    |	РегТоварыВРознице.Номенклатура.ЕдиницаХраненияОстатков,
    |	РегТоварыВРознице.ХарактеристикаНоменклатуры,
    |	РегТоварыВРознице.СерияНоменклатуры,
    |	РегТоварыВРознице.Качество
    |ИМЕЮЩИЕ
    |	Сумма(" + ТекстЗапросаКоличество + ") <> 0
    |	ИЛИ Сумма(" + ТекстЗапросаСуммаПродажная + ") <> 0
    |ИТОГИ
    |ПО
    |	Склад
    |");
    
    Запрос.УстановитьПараметр("Док", Док);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    Если РезультатЗапроса.Пустой() Тогда
    Предупреждение(ТекстНетДвижений);
    ТабДокумент = Неопределено;
    Иначе
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РасходСРозничныхСкладовВЦенахАТТ";
    
    Макет = ПолучитьОбщийМакет("ПриходРасходВЦенахАТТ");
    
    ОбластьЗаголовок     = Макет.ПолучитьОбласть("Заголовок");
    ОбластьШапкаТаблицы  = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьСклад         = Макет.ПолучитьОбласть("Склад");
    ОбластьСтроки        = Макет.ПолучитьОбласть("Строка");
    ОбластьИтого         = Макет.ПолучитьОбласть("Итого");
    ОбластьСуммаПрописью = Макет.ПолучитьОбласть("СуммаПрописью");
    ОбластьПодписи       = Макет.ПолучитьОбласть("Подписи");
    
    ЗаголовокДокумента = ОбщегоНазначения.СформироватьЗаголовокДокумента(Док, Док.Метаданные().Синоним);
    
    ВыборкаСклады = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Склад");
    Пока ВыборкаСклады.Следующий() Цикл
    ВыбМОЛ = РегистрыСведений.ОтветственныеЛица.ПолучитьПоследнее(Док.Дата, Новый Структура("СтруктурнаяЕдиница", ВыборкаСклады.Склад)).ФизическоеЛицо;
    
    ОбластьЗаголовок.Параметры.ТекстЗаголовка = ЗаголовокДокумента;
    ТабДокумент.Вывести(ОбластьЗаголовок);
    
    ОбластьСклад.Параметры.ПредставлениеСклада = СокрЛП(ВыборкаСклады.Склад) + ?(ЗначениеЗаполнено(ВыбМОЛ), " (материально-ответственное лицо: " + ВыбМОЛ + ")", "");
    ТабДокумент.Вывести(ОбластьСклад);
    
    ТабДокумент.Вывести(ОбластьШапкаТаблицы);
    
    НомерСтроки = 0;
    Сумма = 0;
    
    Выборка = ВыборкаСклады.Выбрать();
    Пока Выборка.Следующий() Цикл
    НомерСтроки = НомерСтроки + 1;
    
    Сумма = Сумма + Выборка.СуммаПродажная;
    
    ОбластьСтроки.Параметры.Заполнить(Выборка);
    ОбластьСтроки.Параметры.НомерСтроки = НомерСтроки;
    ОбластьСтроки.Параметры.Товар = СокрЛП(Выборка.Номенклатура)
    + ФормированиеПечатныхФорм.ПредставлениеСерий(Выборка);
    ОбластьСтроки.Параметры.Цена = ?(Выборка.Количество = 0, 0, Выборка.СуммаПродажная / Выборка.Количество);
    
    ТабДокумент.Вывести(ОбластьСтроки);
    КонецЦикла;
    
    ОбластьИтого.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма);
    ТабДокумент.Вывести(ОбластьИтого);
    
    ОбластьСуммаПрописью.Параметры.ИтоговаяСтрока = ТекстВсегоПринятоОтпущено + НомерСтроки + " наименований, на сумму " + ОбщегоНазначения.ФорматСумм(Сумма, ВалютаРегламентированногоУчета);
    ОбластьСуммаПрописью.Параметры.СуммаПрописью  = ОбщегоНазначения.СформироватьСуммуПрописью(Сумма, ВалютаРегламентированногоУчета);
    ТабДокумент.Вывести(ОбластьСуммаПрописью);
    
    ОбластьПодписи.Параметры.ПринялОтпустил = ТекстПринялОтпустил;
    ТабДокумент.Вывести(ОбластьПодписи);
    
    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    КонецЦикла;
    КонецЕсли;
    
    Возврат ТабДокумент;
    
    КонецФункции // НапечататьПриходРасходСРозничныхСкладовВЦенахАТТ()
    
    
  5. TopicStarter Overlay
    redmonkey
    Offline

    redmonkey Опытный в 1С

    Регистрация:
    4 сен 2008
    Сообщения:
    133
    Симпатии:
    0
    Баллы:
    26
    спасибо... все написал написал,обработку создал..работает
  6. reznik911
    Offline

    reznik911

    Регистрация:
    15 янв 2014
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    1
    ты не мог бы скинуть сюда свою обработку
  7. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.175
    Симпатии:
    13
    Баллы:
    29
    последний раз автор тут был в 12 году :)
  8. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.991
    Симпатии:
    399
    Баллы:
    104
    Это не показатель :D. Надо прислать человеку, что тут не понятного :D :D :D

Поделиться этой страницей