Имя: Пароль:
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
Есть у вас отчет "Суммовая оценка склада"? Там можно посчитать склад по любому типу цен?
Нет под рукой КА, так бы показал.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн