×
×
Закрытая тема
Показано с 1 по 2 из 2
  1. #1
    VZ
    Гость

    В Запросе Сумма только целая?

    Подскажет ли кто?
    Суть проблемы: бух захотел отчет по продукции (счет 43) в разрезе видов номенклатуры (сиречь видов деятельности). Надо было уважить, и, поскольку вид номенклатуры есть реквизит номенклатуры, решил применить запрос. Привожу текст:
    Функция ВыбБухИт(ТипВыборки,ТипСуммы,Товар)
    Если ТипВыборки=1 Тогда //"СНД"
    Возврат БухИт.СНД(Сч43,ТипСуммы,,Товар);
    ИначеЕсли ТипВыборки=3 Тогда //"СКД"
    Возврат БухИт.СКД(Сч43,ТипСуммы,,Товар);
    ИначеЕсли ТипВыборки=5 Тогда //"ДО"
    Возврат БухИт.ДО(Сч43,ТипСуммы,,Товар);
    ИначеЕсли ТипВыборки=6 Тогда //"КО"
    Возврат БухИт.КО(Сч43,ТипСуммы,,Товар);
    КонецЕсли;
    КонецФункции
    Это потому, что в запросе конструция типа Функция СальдоН=Сумма(БИ.СНД(""43"",1,,номенклатура)) не проходит, а проходит следующее:
    БухИт.Рассчитать(ВыбНачПериода,ВыбКонПериода,Сч43);
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Продукция = Справочник.Номенклатура.ТекущийЭлемент;
    |Заказ = Справочник.Номенклатура.ВидНоменклатуры;
    |Функция НачСумма = Сумма(ВыбБухИт(1,1,Продукция));
    |Функция НачКол_во = Сумма(ВыбБухИт(1,3,Продукция));
    |Функция КонСумма = Сумма(ВыбБухИт(3,1,Продукция));
    |Функция КонКол_во = Сумма(ВыбБухИт(3,3,Продукция));
    |Функция ДОСумма = Сумма(ВыбБухИт(5,1,Продукция));
    |Функция ДОКол_во = Сумма(ВыбБухИт(5,3,Продукция));
    |Функция КОСумма = Сумма(ВыбБухИт(6,1,Продукция));
    |Функция КОКол_во = Сумма(БыбБухИт(6,3,Продукция));
    |Группировка Заказ Упорядочить по Заказ.Код;
    |Группировка Продукция Упорядочить по Продукция.Наименование;
    |Условие (Продукция.ТипНоменклатуры=Перечисление.ТипыНоменклатуры.Продукция);
    |"//}}ЗАПРОС
    ;
    Конечно, БухИт и Сч43 общие переменные, Сч43=СчетПоКоду("43"); (простите за подробности)
    Так вот, все чудно сработало, но при выводе (не стану утомлять тривиальным) выяснилось, что Запрос.НачСумма и другие имеют ЦЕЛЫЙ тип. (Само собой, в ячейке таблицы: Запрос.НачСумма#N14.2)
    Конешно, значения можно определять и вне запроса, при просмотре
    Пока Запрос.Группировка("Заказ") = 1 Цикл
    Пока Запрос.Группировка("Продукция")=1 Цикл
    НачСумма=БухИт.СНД(Сч43,1,,Запрос.Продукция);
    и т.д. и т.п., но это не так красиво, медленней, и, главное, итоги имеем не в начале цикла Запрос.Группировка("Заказ"), а после Запрос.Группировка("Продукция"), что портит весь макияж при выводе.
    Может, кто-то побеждал сей глюк? (релиз 18) Поделитесь, а?
    Поделиться с друзьями

  2. #2
    Не понимаю, зачем идти такими путями? - (использовать "Запрос" для доступа к бухгалтерским итогам).

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

    "Бухгалтерские итоги" - объект. Подробно смотри в помощнике.

Закрытая тема

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы можете создавать новые темы
  • Вы можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •