8.х Не сходится сумма в документе и в печатной форме

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем notaSS, 9 апр 2015.

  1. TopicStarter Overlay
    notaSS
    Offline

    notaSS Опытный в 1С

    Регистрация:
    22 ноя 2014
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте.
    1с Аптека.Больничная аптека, редакция 1.1 (1.1.1.2)
    В документе "Отпуск в отделение" в табличной части у позиции сумма одна, а на печатной форме другая. Смотрю отладчиком - не могу понять откуда цена берется. Подскажите.
    --- Объединение сообщений, 9 апр 2015 ---
    модуль

    Вложения:

  2. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Ну по коду - цена на коэффициент какой то умножается.
  3. TopicStarter Overlay
    notaSS
    Offline

    notaSS Опытный в 1С

    Регистрация:
    22 ноя 2014
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    коэффициент равен 1(по отладчику
    )
  4. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Какое отношение имеет функция, которую вы показали к выводу печатной формы?

    В печатной форме - как сумма получается?
  5. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Мы про что говорим - сумму или цену?
    Тут скрин только как цена вычисляется, а где как сумма. Вариант может просто в документе сумму руками изменили и все, и цену не персчитывали. а в печатной - берется цена и умножается наколичество т.е вычисляется а не берется из документа
  6. TopicStarter Overlay
    notaSS
    Offline

    notaSS Опытный в 1С

    Регистрация:
    22 ноя 2014
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    Код:
    Функция ПечатьМ11(МассивОбъектов, ОбъектыПечати)
       
        мВестиУчетПоИсточникамФинансирования = ПолучитьФункциональнуюОпцию("ИспользоватьИсточникиФинансирования");
        ТабДокумент = Новый ТабличныйДокумент;
       
        // Зададим параметры макета
        ТабДокумент.ОриентацияСтраницы         = ОриентацияСтраницы.Ландшафт;
        ТабДокумент.АвтоМасштаб             = Истина;
       
        ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ОтпускТоваровВОтделение_М11";
       
        Макет = УправлениеПечатью.ПолучитьМакет("Документ.ОтпускТоваровВОтделение.ПФ_MXL_М11");
       
        ВалютаПечати = ЗначениеНастроекПовтИсп.ПолучитьВалютуРегламентированногоУчета();
       
        // Создаем массив для проверки вывода
        МассивВыводимыхОбластей = Новый Массив;   
       
        ТекстЗапроса = ПолучитьТекстЗапросаДанныеДляПечати() + ";" + ПолучитьТекстЗапросаЦены();
       
        Запрос = Новый Запрос;
        Запрос.Текст = ТекстЗапроса;
        Запрос.УстановитьПараметр("ТекущийДокумент", МассивОбъектов);
       
        РезультатыЗапросов = Запрос.ВыполнитьПакет();
       
        ТаблицаЦен = РезультатыЗапросов[2].Выгрузить();
           
        ПервыйДокумент = Истина;
        Шапка = РезультатыЗапросов[0].Выбрать();
        Пока Шапка.Следующий() Цикл
           
            Если Не ПервыйДокумент Тогда
                ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
            КонецЕсли;
           
            ПервыйДокумент = Ложь;
            НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1;
           
            // Выводим общие реквизиты шапки
            СведенияОбОрганизации = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(Шапка.Организация, Шапка.ДатаДокумента);
           
            ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
            ОбластьШапка.Параметры.Заполнить(Шапка);
            НомерДокумента = ФормированиеПечатныхФорм.ПолучитьНомерНаПечать(Шапка.НомерДокумента, Шапка.Префикс);
            ОбластьШапка.Параметры.Заголовок = "ТРЕБОВАНИЕ-НАКЛАДНАЯ № " + Строка(НомерДокумента);
            ОбластьШапка.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации);
           
            ТабДокумент.Вывести(ОбластьШапка);
    
            //вывод дополнительных строк шапки, если нужно
            ОбластьШапка = Макет.ПолучитьОбласть("ШапкаДопСтрока");
           
            Если мВестиУчетПоИсточникамФинансирования И ЗначениеЗаполнено(Шапка.ИсточникФинансирования) Тогда
                ОбластьШапка.Параметры.ИмяДополнительногоПараметра = "Источник финансирования:";
                ОбластьШапка.Параметры.ЗначениеДополнительногоПараметра = Шапка.ИсточникФинансирования;
                ТабДокумент.Вывести(ОбластьШапка);
            КонецЕсли;
           
            //вывод окончания шапки
            ОбластьШапка = Макет.ПолучитьОбласть("ШапкаНачалоТаблицы");
            ОбластьШапка.Параметры.Заполнить(Шапка);
            ТабДокумент.Вывести(ОбластьШапка);
           
            //Выводим строки с различными складами
            ОбластьСтрокаШапки = Макет.ПолучитьОбласть("ШапкаСтрока");
            ОбластьСтрокаШапки.Параметры.Заполнить(Шапка);
            ОбластьСтрокаШапки.Параметры.ДатаСоставления = Шапка.ДатаДокумента;
            ТабДокумент.Вывести(ОбластьСтрокаШапки);
           
            //кто выдал
            ОбластьМакета=Макет.ПолучитьОбласть("ШапкаПродолжениеПерваяСтраница");
           
            ФИОЧерезКого = ФормированиеПечатныхФорм.ФамилияИнициалыФизЛица(Шапка.ПриемкуПроизвел);
            ОбластьМакета.Параметры.ФИОЧерезКого = ?(ПустаяСтрока(ФИОЧерезКого), "", Шапка.ДолжностьПриемкуПроизведшего + " " + ФИОЧерезКого);
            ФИОЗатребовал = ФормированиеПечатныхФорм.ФамилияИнициалыФизЛица(Шапка.ЗаведующийОтделением);
            ОбластьМакета.Параметры.ФИОЗатребовал = ?(ПустаяСтрока(ФИОЗатребовал), "", Шапка.ДолжностьЗаведующегоОтделением + " " +ФИОЗатребовал);
           
            ТабДокумент.Вывести(ОбластьМакета);
    
            // Выводим заголовок таблицы
            ЗаголовокТаблицы = Макет.ПолучитьОбласть("ШапкаПродолжение");
            НомерСтраницы = 1;
            ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
            ТабДокумент.Вывести(ЗаголовокТаблицы);
           
            Ном = 0;
           
            СуммаИтого = 0;
           
            ОбластьЗаказано = Макет.ПолучитьОбласть("СтрокаЗаказано");
            ОбластьИтого     = Макет.ПолучитьОбласть("СтрокаИтого");
            ОбластьПодвал     = Макет.ПолучитьОбласть("Подвал");
           
            ВыборкаСтрокТовары = Шапка.Товары.Выбрать();
           
            КоличествоСтрок = ВыборкаСтрокТовары.Количество();
           
            Пока ВыборкаСтрокТовары.Следующий() Цикл
               
                Ном = Ном + 1;
               
                ОбластьЗаказано.Параметры.Заполнить(ВыборкаСтрокТовары);
                ОбластьЗаказано.Параметры.ТоварНаименование = ФормированиеПечатныхФорм.ПолучитьПредставлениеНоменклатурыДляПечати(ВыборкаСтрокТовары.ТоварНаименование, ВыборкаСтрокТовары.Серия);
                ОбластьЗаказано.Параметры.КоличествоЗатребовано = ВыборкаСтрокТовары.Количество;
                ОбластьЗаказано.Параметры.КоличествоОтпущено = ВыборкаСтрокТовары.Количество;
               
                Цена = ФормированиеПечатныхФорм.ПолучитьЦенуНоменклатурыНаСкладе(ВыборкаСтрокТовары, ТаблицаЦен, Шапка);
                Сумма = Окр(Цена * ВыборкаСтрокТовары.Количество, 2);
                Цена = Окр(Цена, 2);
               
                ОбластьЗаказано.Параметры.Цена  = Цена;
                ОбластьЗаказано.Параметры.Сумма = Сумма;
               
                МассивВыводимыхОбластей.Очистить();
                МассивВыводимыхОбластей.Добавить(ОбластьЗаказано);
                Если Ном = КоличествоСтрок Тогда
                    МассивВыводимыхОбластей.Добавить(ОбластьИтого);
                    МассивВыводимыхОбластей.Добавить(ОбластьПодвал);
                КонецЕсли;
               
                Если Не ТабДокумент.ПроверитьВывод(МассивВыводимыхОбластей) Тогда
                   
                    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
                   
                    НомерСтраницы = НомерСтраницы + 1;
                    ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
                    ТабДокумент.Вывести(ЗаголовокТаблицы);
                   
                КонецЕсли;
               
                ТабДокумент.Вывести(ОбластьЗаказано);
               
                СуммаИтого = СуммаИтого + Сумма;
               
            КонецЦикла;
           
            ТабДокумент.ЗакончитьАвтогруппировкуСтрок();
    
            ОбластьИтого.Параметры.Сумма = СуммаИтого;   
            ТабДокумент.Вывести(ОбластьИтого);
           
            ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
           
            ФИООтправителя = ФормированиеПечатныхФорм.ФамилияИнициалыФизЛица(Шапка.ОтпускПроизвел);
            ОбластьПодвал.Параметры.ФИООтправителя = ФИООтправителя;
            ОбластьПодвал.Параметры.ДолжностьОтправителя = Шапка.ДолжностьОтпускПроизведшего;
           
            ФИОПолучателя = ФормированиеПечатныхФорм.ФамилияИнициалыФизЛица(Шапка.ПриемкуПроизвел);
            ОбластьПодвал.Параметры.ФИОПолучателя = ФИОПолучателя;
            Если Не ПустаяСтрока(ФИОПолучателя) Тогда
                ОбластьПодвал.Параметры.ДолжностьПолучателя = Шапка.ДолжностьПриемкуПроизведшего;
            КонецЕсли;
           
            ТабДокумент.Вывести(ОбластьПодвал);
           
            УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент, НомерСтрокиНачало, ОбъектыПечати, Шапка.Ссылка);
           
        КонецЦикла;   
       
        Возврат ТабДокумент;
       
    КонецФункции
    
    --- Объединение сообщений, 9 апр 2015 ---
    цена не сходится в документе и в печатной форме, ну из за цены соответственно сумма
    --- Объединение сообщений, 9 апр 2015 ---
    в документе встречаются повторяющиеся позиции, так в одной позиции цена сходится, а в другой нет
  7. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    ну скорее всего тогда тот вариант который я сказал что то изменили руками - или цену или сумму, но другое ту же сумму или ценну не перерасчитали вот и все
    --- Объединение сообщений, 9 апр 2015 ---
    попробуйт перемножить в документе цену на количесва то что получатеся сходтся с тем где сумма ?
  8. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Ну так это.
    Цена то в печатную форму не из табличной части документа берется. Она же запросом получается при выводе на печать.
    Т.е. разные алгоритмя: при подборе товара - цены по одному вычисляются, при печати по другому. Подозреваю что при печати там возможно даже не цена берется, а себестоимость. Это надо запрос смотреть, из которого получаются данные в ТаблицаЦен.
  9. TopicStarter Overlay
    notaSS
    Offline

    notaSS Опытный в 1С

    Регистрация:
    22 ноя 2014
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    Больничная аптека редакция 1.1 (1.1.1.2). Разбираюсь с ценами в печатной форме. Отладчиком дошла до запроса, но не могу открыть его. Выходит ошибка.Обновление не помогло, обновляла до 1.1.3.1 Вопрос в том, что в печатных формах цены на товары намного больше, чем в документе
    Код:
    Функция ПолучитьТекстЗапросаЦен(втТаблицаТовары = "втТаблицаТовары") Экспорт
       
        ТекстЗапроса =
        "ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    Товары.Номенклатура КАК Номенклатура,
        |    Товары.СерияНоменклатуры КАК Серия,
        |    Товары.Партия КАК Партия,
        |    Товары.ИсточникФинансирования КАК ИсточникФинансирования,
        |    Товары.Документ КАК Документ,
        |    ВЫБОР
        |        КОГДА ЕстьNULL(СУММА(СебестоимостьТоваров.Количество), 0) = 0
        |            ТОГДА 0
        |        ИНАЧЕ ВЫРАЗИТЬ(СУММА(СебестоимостьТоваров.Стоимость + СебестоимостьТоваров.СуммаДопРасходов) / СУММА(СебестоимостьТоваров.Количество) КАК ЧИСЛО(20, 6))
        |    КОНЕЦ КАК Цена
        |ИЗ
        |    %1 КАК Товары
        |        ЛЕВОЕ СОЕДИНЕНИЕ
        |            РегистрСведений.АналитикаВидаУчета КАК АналитикиВидаУчета
        |            ПО
        |                Товары.Организация = АналитикиВидаУчета.Организация
        |                И Товары.Склад = АналитикиВидаУчета.Склад
        |                И АналитикиВидаУчета.ПодразделениеОрганизации = Товары.ПодразделениеОрганизации
        |                И Товары.ИсточникФинансирования = АналитикиВидаУчета.ИсточникФинансирования
        |        ЛЕВОЕ СОЕДИНЕНИЕ
        |            РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикиУчетаНоменклатуры
        |            ПО
        |                Товары.Номенклатура = АналитикиУчетаНоменклатуры.Номенклатура
        |                И Товары.СерияНоменклатуры = АналитикиУчетаНоменклатуры.СерияНоменклатуры
        |                И Товары.Партия = АналитикиУчетаНоменклатуры.Партия
        |        ЛЕВОЕ СОЕДИНЕНИЕ
        |            РегистрНакопления.СебестоимостьТоваров КАК СебестоимостьТоваров
        |            ПО
        |                СебестоимостьТоваров.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
        |                И СебестоимостьТоваров.РазделУчета = Товары.РазделУчета
        |                И АналитикиВидаУчета.КлючАналитики = СебестоимостьТоваров.АналитикаВидаУчета
        |                И АналитикиУчетаНоменклатуры.КлючАналитики = СебестоимостьТоваров.АналитикаУчетаНоменклатуры
        |                И СебестоимостьТоваров.Период МЕЖДУ НАЧАЛОПЕРИОДА(Товары.ДатаДокумента, МЕСЯЦ) И КОНЕЦПЕРИОДА(Товары.ДатаДокумента, МЕСЯЦ)
        |
        |СГРУППИРОВАТЬ ПО
        |    Товары.Номенклатура,
        |    Товары.СерияНоменклатуры,
        |    Товары.Партия,
        |    Товары.Документ,
        |    Товары.ИсточникФинансирования
        |";
       
        Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстЗапроса, втТаблицаТовары);
       
    КонецФункции
    
    

    Вложения:

  10. TopicStarter Overlay
    notaSS
    Offline

    notaSS Опытный в 1С

    Регистрация:
    22 ноя 2014
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    Больничная аптека редакция 1.1 (1.1.1.2). Разбираюсь с ценами в печатной форме. Отладчиком дошла до запроса, но не могу открыть его. Выходит ошибка.Обновление не помогло, обновляла до 1.1.3.1 Вопрос в том, что в печатных формах цены на товары намного больше, чем в документе
    Код:
    Функция ПолучитьТекстЗапросаЦен(втТаблицаТовары = "втТаблицаТовары") Экспорт
       
        ТекстЗапроса =
        "ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    Товары.Номенклатура КАК Номенклатура,
        |    Товары.СерияНоменклатуры КАК Серия,
        |    Товары.Партия КАК Партия,
        |    Товары.ИсточникФинансирования КАК ИсточникФинансирования,
        |    Товары.Документ КАК Документ,
        |    ВЫБОР
        |        КОГДА ЕстьNULL(СУММА(СебестоимостьТоваров.Количество), 0) = 0
        |            ТОГДА 0
        |        ИНАЧЕ ВЫРАЗИТЬ(СУММА(СебестоимостьТоваров.Стоимость + СебестоимостьТоваров.СуммаДопРасходов) / СУММА(СебестоимостьТоваров.Количество) КАК ЧИСЛО(20, 6))
        |    КОНЕЦ КАК Цена
        |ИЗ
        |    %1 КАК Товары
        |        ЛЕВОЕ СОЕДИНЕНИЕ
        |            РегистрСведений.АналитикаВидаУчета КАК АналитикиВидаУчета
        |            ПО
        |                Товары.Организация = АналитикиВидаУчета.Организация
        |                И Товары.Склад = АналитикиВидаУчета.Склад
        |                И АналитикиВидаУчета.ПодразделениеОрганизации = Товары.ПодразделениеОрганизации
        |                И Товары.ИсточникФинансирования = АналитикиВидаУчета.ИсточникФинансирования
        |        ЛЕВОЕ СОЕДИНЕНИЕ
        |            РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикиУчетаНоменклатуры
        |            ПО
        |                Товары.Номенклатура = АналитикиУчетаНоменклатуры.Номенклатура
        |                И Товары.СерияНоменклатуры = АналитикиУчетаНоменклатуры.СерияНоменклатуры
        |                И Товары.Партия = АналитикиУчетаНоменклатуры.Партия
        |        ЛЕВОЕ СОЕДИНЕНИЕ
        |            РегистрНакопления.СебестоимостьТоваров КАК СебестоимостьТоваров
        |            ПО
        |                СебестоимостьТоваров.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
        |                И СебестоимостьТоваров.РазделУчета = Товары.РазделУчета
        |                И АналитикиВидаУчета.КлючАналитики = СебестоимостьТоваров.АналитикаВидаУчета
        |                И АналитикиУчетаНоменклатуры.КлючАналитики = СебестоимостьТоваров.АналитикаУчетаНоменклатуры
        |                И СебестоимостьТоваров.Период МЕЖДУ НАЧАЛОПЕРИОДА(Товары.ДатаДокумента, МЕСЯЦ) И КОНЕЦПЕРИОДА(Товары.ДатаДокумента, МЕСЯЦ)
        |
        |СГРУППИРОВАТЬ ПО
        |    Товары.Номенклатура,
        |    Товары.СерияНоменклатуры,
        |    Товары.Партия,
        |    Товары.Документ,
        |    Товары.ИсточникФинансирования
        |";
       
        Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстЗапроса, втТаблицаТовары);
       
    КонецФункции
    
    
  11. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    notaSS ну смотрите, давайте выясним что вам в итоге надо.

    Если вам нужно чтобы в печатной форме отображались цены такие же, какие в табличной части, то вам надо переписать вывод печатной формы с тем, чтобы цены (и сумма) у вас брались собственно из этой самой табличной части. Все. То что вы выше показали - не имеет тогда значения. Вам нужно написать свой запрос к табличной части документа.

    Если же вы хотите разобраться почему при типовом выводе у вас разные суммы - тогда вам нужно разбираться не с этим запросом, а с закрытием месяца в вашей конфигурации (суммы разные потому что у вас не рассчитана/неправильно рассчитана себестоимость товара). Вот и все.
  12. akvilon2002
    Offline

    akvilon2002

    Регистрация:
    6 май 2016
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Добрый день!
    Помогите пожалуйста как переписать вывод печатной формы.Наша проблема один в один с той, что 13 апреля 2015 года

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