Имя: Пароль:
1C
1С v8
Вывод цены и суммы в ВПФ выпуск продукции 8.2 КА
0 Pro-specs
 
21.09.12
05:05
Помогите вывести цену и сумму в колонках в ВПФ МХ-18 выпуск продукции

Функция Печать() Экспорт
   
   Макет = ПолучитьМакет("МХ18");
   
   ТабДокумент  = Новый ТабличныйДокумент;
   
     
  Ссылка = СсылкаНаОбъект;
 
  // Зададим параметры печатной формы по умолчанию
   
   ТабДокумент.ПолеСверху              = 0;
   ТабДокумент.ПолеСлева               = 0;
   ТабДокумент.ПолеСнизу               = 0;
   ТабДокумент.ПолеСправа              = 0;
   ТабДокумент.РазмерКолонтитулаСверху = 0;
   ТабДокумент.РазмерКолонтитулаСнизу  = 0;
   ТабДокумент.АвтоМасштаб             = Истина;
   ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Ландшафт;
   
   // Восстановим установленные пользователем параметры печатной формы
   ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ВыпускПродукции_МХ18";
   
   // Определяем, что будем выводить - код или артикул
   ВыводитьАртикул      = (глЗначениеПеременной("ДополнительнаяКолонкаПечатныхФормДокументов") = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул);
   ЕдиницаИзмеренияВеса = глЗначениеПеременной("ЕдиницаИзмеренияВеса");
   
   ПервыйДокумент = Истина;
   
   
       
       Запрос = Новый Запрос;
       Запрос.УстановитьПараметр("Регистратор", Ссылка);
       
       Запрос.Текст =
       "ВЫБРАТЬ
       |    ВыпускПродукции.Номер,
       |    ВыпускПродукции.Дата КАК ДатаДокумента,
       |    ВыпускПродукции.Организация,
       |    ВыпускПродукции.Склад КАК Получатель,
       |    ВыпускПродукции.Подразделение.Представление КАК ПредставлениеПодразделения,
       |    ВыпускПродукции.СчетЗатрат КАК КоррСчет
       |ИЗ
       |    Документ.ВыпускПродукции КАК ВыпускПродукции
       |ГДЕ
       |    ВыпускПродукции.Ссылка = &Регистратор";
       Шапка = Запрос.Выполнить().Выбрать();
       Шапка.Следующий();
       
       ТекстЗапроса = "
       |ВЫБРАТЬ
       |    Продукция.Номенклатура                                                                КАК Номенклатура,
       |    ВЫРАЗИТЬ(Продукция.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))                КАК ТоварНаименование,
       |    Продукция.Номенклатура.Код                                                            КАК ТоварКод,
       |    Продукция.Номенклатура.Артикул                                                        КАК ТоварАртикул,
       |    Продукция.ЕдиницаИзмерения.Представление                                            КАК БазоваяЕдиницаНаименование,
       |    Продукция.ЕдиницаИзмерения.ЕдиницаПоКлассификатору.Код                                КАК БазоваяЕдиницаКодПоОКЕИ,
       |    Продукция.ЕдиницаИзмерения                                                            КАК ЕдиницаИзмерения,
       |    Продукция.ЕдиницаИзмерения.Наименование                                            КАК ЕдиницаИзмеренияНаименование,
       |    Продукция.Номенклатура.БазоваяЕдиницаИзмерения.Код                                    КАК ЕдиницаИзмеренияКод,
       |    Продукция.ЕдиницаИзмеренияМест.Представление                                        КАК ВидУпаковки,
       |    Продукция.ЕдиницаИзмеренияМест.Коэффициент / Продукция.Коэффициент                    КАК КоличествоВОдномМесте,
       |    ВЫБОР
       |        КОГДА Продукция.КоличествоМест > 0 И НЕ Продукция.ЕдиницаИзмеренияМест.Вес ЕСТЬ NULL
       |            ТОГДА Продукция.КоличествоМест * Продукция.ЕдиницаИзмеренияМест.Вес
       |        ИНАЧЕ Продукция.Количество * Продукция.ЕдиницаИзмерения.Вес
       |    КОНЕЦ                                                                                КАК МассаБрутто,
       |    Продукция.ХарактеристикаНоменклатуры                                                КАК Характеристика,
       |    Продукция.СерияНоменклатуры                                                        КАК Серия,
       |    Продукция.Количество                                                                КАК Количество,
       |    Продукция.КоличествоМест                                                            КАК КоличествоМест,
       |    Продукция.НомерСтроки                                                                КАК НомерСтроки,
       |    0                                                                                    КАК Цена,
       |    ВЫРАЗИТЬ(ЕСТЬNULL(ТаблицаСебестоимостиОбороты.Стоимость, 0)
       |             * Продукция.Количество * Продукция.Коэффициент
       |             / ЕСТЬNULL(Продукция.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент, 1)
       |             / ЕСТЬNULL(ТаблицаСебестоимостиОбороты.Количество, 1) КАК ЧИСЛО(15, 2))    КАК Сумма
       |ИЗ
       |    Документ.ВыпускПродукции.Продукция КАК Продукция
       |        ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаСебестоимостиОбороты КАК ТаблицаСебестоимостиОбороты
       |        ПО Продукция.Номенклатура = ТаблицаСебестоимостиОбороты.Номенклатура
       |            И (ТаблицаСебестоимостиОбороты.Регистратор = &Регистратор)
       |            И (Продукция.ХарактеристикаНоменклатуры = ТаблицаСебестоимостиОбороты.ХарактеристикаНоменклатуры
       |                ИЛИ ТаблицаСебестоимостиОбороты.ХарактеристикаНоменклатуры = ""Не используется"")
       |            И (Продукция.СерияНоменклатуры = ТаблицаСебестоимостиОбороты.СерияНоменклатуры
       |                ИЛИ ТаблицаСебестоимостиОбороты.СерияНоменклатуры = ""Не используется"")
       |            И (Продукция.СчетУчетаБУ = ТаблицаСебестоимостиОбороты.СчетУчета
       |                ИЛИ ТаблицаСебестоимостиОбороты.СчетУчета = ""Не используется"")
       |ГДЕ
       |    Продукция.Ссылка = &Регистратор
       |
       |УПОРЯДОЧИТЬ ПО
       |    НомерСтроки";
       
       СтруктраПараметров = Новый Структура();
       СтруктраПараметров.Вставить("Регистратор",                        Ссылка);
       СтруктраПараметров.Вставить("НачГраница",                        Новый Граница(Шапка.ДатаДокумента, ВидГраницы.Включая));
       
       ТаблицаПродукции = УправлениеЗапасами.ПолучитьТаблицуЗатратДляПечатиИЗаполненияДокументов(Ссылка, ТекстЗапроса, СтруктраПараметров);
       
       Если ТаблицаПродукции = Неопределено Тогда
           //Продолжить;
       КонецЕсли;
       
       Если НЕ ПервыйДокумент Тогда
           ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
       КонецЕсли;
       
       ПервыйДокумент = Ложь;
       НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1;
       
       // Выводим общие реквизиты шапки
       ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
       ОбластьМакета.Параметры.Заполнить(Шапка);
       ОбластьМакета.Параметры.НомерДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(Шапка);
       
       СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.ДатаДокумента);
       ОбластьМакета.Параметры.ПредставлениеОрганизации    = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации);
       ОбластьМакета.Параметры.ОрганизацияПоОКПО            = СведенияОбОрганизации.КодПоОКПО;

       ТабДокумент.Вывести(ОбластьМакета);

       СтрокНаСтранице = 20;
       СтрокШапки      = 10;
       СтрокПодвала    = 9;
       НомерСтраницы   = 1;

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

       КоличествоСтрок = ТаблицаПродукции.Количество();

       Если КоличествоСтрок <= 2 Тогда
           ПереноситьПоследнююСтроку = 0;
       Иначе
           ЦелыхСтраницСПодвалом     = Цел((СтрокШапки + КоличествоСтрок + СтрокПодвала) / СтрокНаСтранице);
           ЦелыхСтраницБезПодвала    = Цел((СтрокШапки + КоличествоСтрок - 1) / СтрокНаСтранице);
           ПереноситьПоследнююСтроку = ЦелыхСтраницСПодвалом - ЦелыхСтраницБезПодвала;
       КонецЕсли;

       //инициализация итогов по странице
       ИтогоМассаБруттоНаСтранице = 0;
       ИтогоМестНаСтранице        = 0;
       ИтогоКоличествоНаСтранице  = 0;
       ИтогоСуммаНаСтранице         = 0;

       // инициализация итогов по документу
       ИтогоМассаБрутто = 0;
       ИтогоМест        = 0;
       ИтогоКоличество  = 0;
       ИтогоСумма       = 0;
       Ном              = 0;

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

               НомерСтраницы = НомерСтраницы + 1;
               ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
               ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
               ТабДокумент.Вывести(ЗаголовокТаблицы);

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

КонецФункции // ПечатьМХ18()
1 Cyberhawk
 
21.09.12
05:06
Где в приведенном коде твои дописки?
2 Pro-specs
 
21.09.12
05:07
пока нет...Только из стандартной сделал ВПФ
3 Pro-specs
 
21.09.12
05:16
Вот пока только такое

ДокВыпуск = документы.ВыпускПродукции.СоздатьДокумент();
    Запрос= Новый запрос(
    "ВЫБРАТЬ
    |    ХозрасчетныйДвиженияССубконто.Сумма,
    |    ХозрасчетныйДвиженияССубконто.СубконтоДт1 КАК Номенклатура,
    |    ХозрасчетныйДвиженияССубконто.КоличествоДт КАК Количество
    |ИЗ
    |    Документ.ВыпускПродукции.Продукция КАК ВыпускПродукцииПродукция
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(, , Регистратор = &Регистратор, , ) КАК ХозрасчетныйДвиженияССубконто
    |        ПО ВыпускПродукцииПродукция.Ссылка = ХозрасчетныйДвиженияССубконто.Регистратор
    |            И ВыпускПродукцииПродукция.Номенклатура = ХозрасчетныйДвиженияССубконто.СубконтоДт1");
    Запрос.УстановитьПараметр("Регистратор", ДокВыпуск.Ссылка);
    ТЗ = Запрос.Выполнить().Выгрузить()
4 Pro-specs
 
21.09.12
05:16
и то вставляю не работает
5 Cyberhawk
 
21.09.12
05:55
Покажи на картинке оригинальную печатную форму и что и куда ты хочешь на нее добавить
6 Pro-specs
 
21.09.12
06:08
секунду
7 Pro-specs
 
21.09.12
06:15
я новичок...как картинку на форум вставить?
8 Pro-specs
 
21.09.12
06:39
9 Cyberhawk
 
21.09.12
06:43
:D Че-то она пипец маленькая
10 Pro-specs
 
21.09.12
06:45
ща по крупнее сделаю
11 Pro-specs
 
21.09.12
06:45
12 Pro-specs
 
21.09.12
06:46
10 и 11 колонки
13 Cyberhawk
 
21.09.12
08:28
У тебя колонки есть в печатной форме. Покажи в самой базе на примере любой печатной формы, что тебя не устраивает в отображаемой печатной форме, и что ты хочешь в ней изменить. Приложи скриншот печатной формы из режима Предприятие.
14 Pro-specs
 
21.09.12
09:42
15 Pro-specs
 
21.09.12
09:42
не выводятся
16 Pro-specs
 
21.09.12
11:59
help
17 Cyberhawk
 
21.09.12
12:00
Туда подставляются цены номенклатуры. Зайди в любую позицию из документа, нажми Перейти - Цены номенклатуры. Эти цены в этом регистре у тебя есть?
18 Pro-specs
 
21.09.12
12:12
Только могу в "перейти" посмотреть цену в движение документа по регистрам
http://s13.radikal.ru/i186/1209/ec/95d9da8590eb.jpg
19 Pro-specs
 
21.09.12
12:19
F1
20 Pro-specs
 
21.09.12
12:23
и как их из регистра вывести на печать?
21 Cyberhawk
 
21.09.12
12:24
Повторно: зайди в любую позицию из документа, нажми Перейти - Цены номенклатуры.
Позиция = номенклатура.
22 ILM
 
гуру
21.09.12
12:25
(0) А почему нет в типовой задумывался? И что такое учетная цена? У вас 15-й счет используется, с отклонениями.
23 ILM
 
гуру
21.09.12
12:25
Или попросили и стал делать?
24 Pro-specs
 
21.09.12
12:26
попросила бухгалтерия
25 ILM
 
гуру
21.09.12
12:26
Вот только потом, когда сумма склада не будет совпадать с учетной ценой, что будешь делать?
26 Pro-specs
 
21.09.12
12:26
как быть?
27 ILM
 
гуру
21.09.12
12:27
Они приходуют на склад с плановой ценой? Спроси они 15-й счет будут использовать?
28 Pro-specs
 
21.09.12
12:27
чичас
29 ILM
 
гуру
21.09.12
12:31
Есть разные способы учета. Обычно 15-й счет не используют. Есть цена себестоимости за прошлый период её делают учетной. Типа на складе столько ГП вот по такой цене. Когда списали затраты в конце месяца, пересчитали правильную с/ст получились отклонения от учетной цены. Эту разницу заносят и потом считают налоги. Обычно на склад, передают по нулевой цене или по цене прямых затрат. Но при этом понимают, что она в конце месяца будет исправлена. Т.е. печать этой цены не нужна, так как она меняется каждый период.
30 Pro-specs
 
21.09.12
12:32
приходуют по плановой
31 Pro-specs
 
21.09.12
12:34
а как плановую вывести? ((
32 Cyberhawk
 
21.09.12
12:35
(31) (17)
33 ILM
 
гуру
21.09.12
12:37
Спроси зачем?
Она же (цена) изменится?
Они что-то в УУ решают?
Есть отчет суммовая оценка склада?  
Если настаивают, то  бери срез последних по регистру, для данной номенклатуры. Результат добъешься, но это лажа по своей сути.
34 ILM
 
гуру
21.09.12
12:38
Цены плановые делаются документом "установка цен номенклатуры". Если нет, пусть бухи долбят.
35 Pro-specs
 
21.09.12
12:44
Спасибо!!! Михаил Юрьевич ))
36 Pro-specs
 
21.09.12
12:45
ща попробую переубедить их ))
37 ILM
 
гуру
21.09.12
12:46
Пожалуйста, обращайтесь нужда будет. ))
38 Pro-specs
 
21.09.12
12:52
Ладно!))
39 Pro-specs
 
21.09.12
12:53
бухи загрузилися)))
40 Pro-specs
 
21.09.12
12:57
Хотят, чтобы плановая цена выводилась, по итогам месяца в накладные за месяц ((
41 ILM
 
гуру
21.09.12
13:03
Спросите, что конкретно хотят. Причем тут плановая цена и Выпуск продукции, что есть такое итоги месяца в накладных за месяц?

Если им нужно знать сколько оприходовано готовой продукции на склады по плановой цене за месяц, то ищите отчет с движением на складе, делайте сумму прихода за месяц, там и цена будет и сумма.
42 Pro-specs
 
21.09.12
13:04
да хотят итоги месяца в накладных за месяц! а в течении месяца накладные с нулевыми ценами
43 Pro-specs
 
21.09.12
13:05
по окончании месяца хотят все накладные распечатывать и подшивать не только с количеством товара, но и с цено
44 ILM
 
гуру
21.09.12
13:15
Нету в МХ-18 цены нету и суммы нету!!! Они будут подшивать "собственнные" накладные из цеха на склад с плановой ценой для чего?
Объясните им, что МХ-18 просто передача на склад количества. Это выпуск ГП.  Расчет себестоимости выпуска поставит фактическую с/ст. Когда закроют месяц у них сумма запаса на складе будет ГП * "фактическую с/ст". Пусть поймут, что это они не купили, не продали, а произвели ГП.
Дайте им отчет суммовая оценка склада, и пусть не трогают типовую накладную МХ-18.
45 Pro-specs
 
21.09.12
13:21
Я им дал отчёт "Выпуск продукции и услуг"
46 ILM
 
гуру
21.09.12
13:24
Дайте отчет по складу.
47 Pro-specs
 
21.09.12
13:27
это "Товары на складах"?
48 ILM
 
гуру
21.09.12
13:37
Есть у вас отчет "Суммовая оценка склада"? Там можно посчитать склад по любому типу цен?
Нет под рукой КА, так бы показал.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.