VBulat

Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору itsskin Цитата:| Так что вопрос в том, как получить себестоимость продаж из регистра для конкр. ТМЦ за конкр. период. Тут конфигурация, ИМХО, непричем... | Ну если конфигурация не причем, и нужен запрос, вот тебе один из вариантов, Вырезан из отчета "Движение ТМЦ" Код: ТекстЗапр = ТекстЗапр+" |Период с ДатаС по ДатаПо; |Фир = Регистр.Остатки.Фирма; |Скл = Регистр.Остатки.Склад; |ТМЦ = Регистр.Остатки.ТМЦ;"; Если (Режим = "Партия") или (Режим = "Документ") Тогда ТекстЗапр = ТекстЗапр+" |Пар = Регистр.Остатки.Партия;"; КонецЕсли; Если (Режим = "Документ") Тогда ТекстЗапр = ТекстЗапр+" |Док = Регистр.Остатки.ТекущийДокумент;"; КонецЕсли; ТекстЗапр = ТекстЗапр+" |Кво = Регистр.Остатки.Кво; |СуммаГрн = Регистр.Остатки.СуммаГрн; |СуммаБезНДС = Регистр.Остатки.СуммаБезНДС; |СуммаОсн = Регистр.Остатки.СуммаОсн; Если (сВидУчета.ПолучитьЗначение(сВидУчета.ТекущаяСтрока()) ="Бухгалтерия") Тогда ТекстЗапр = ТекстЗапр+" |Условие (Фир = выбФирма);"; Заг = Заг+"По бухгалтерским данным. По фирме "+выбФирма+". "; Иначе ТекстЗапр = ТекстЗапр+" |Условие (Фир.Выбран()=0);"; Заг = Заг+"По торговым данным. "; КонецЕсли; ТекстЗапр = ТекстЗапр+" |Условие (Скл в выбСклад); |Условие (ТМЦ в выбТМЦ); |Группировка Скл; |Группировка ТМЦ Упорядочить По ТМЦ.ПолнНаименование, ТМЦ.ФНаименование;"; Если (Режим = "Партия") или (Режим = "Документ") Тогда ТекстЗапр = ТекстЗапр+" |Группировка Пар;"; КонецЕсли; Если (Режим = "Документ") Тогда ТекстЗапр = ТекстЗапр+" |Группировка Док;"; КонецЕсли; Если чГрн = 1 Тогда ТекстЗапр = ТекстЗапр+" |Функция КОСуммаГрн = КонОст(СуммаГрн); |Функция НОСуммаГрн = НачОст(СуммаГрн); |Функция ПСуммаГрн = Приход(СуммаГрн); |Функция РСуммаГрн = Расход(СуммаГрн);"; Заг2 = Заг2+"Учетные суммы с НДС. "; КонецЕсли; Если чБезНДС = 1 Тогда ТекстЗапр = ТекстЗапр+" |Функция КОСуммаБезНДС = КонОст(СуммаБезНДС); |Функция НОСуммаБезНДС = НачОст(СуммаБезНДС); |Функция ПСуммаБезНДС = Приход(СуммаБезНДС); |Функция РСуммаБезНДС = Расход(СуммаБезНДС);"; Заг2 = Заг2+"Учетные суммы без НДС. "; КонецЕсли; Если чОсн = 1 Тогда ТекстЗапр = ТекстЗапр+" |Функция КОСуммаОсн = КонОст(СуммаОсн); |Функция НОСуммаОсн = НачОст(СуммаОсн); |Функция ПСуммаОсн = Приход(СуммаОсн); |Функция РСуммаОсн = Расход(СуммаОсн);"; Заг2 = Заг2+"Учетные суммы в основной валюте. "; КонецЕсли; Если чПрод = 1 Тогда ТекстЗапр = ТекстЗапр+" |Функция КОСуммаГрн = КонОст(СуммаГрн); |Функция НОСуммаГрн = НачОст(СуммаГрн); |Функция ПСуммаГрн = Приход(СуммаГрн); |Функция РСуммаГрн = Расход(СуммаГрн); Заг2 = Заг2+"Продажные суммы в гривнях. "; КонецЕсли; ТекстЗапр = ТекстЗапр+" |Функция КОКво = КонОст(Кво); |Функция НОКво = НачОст(Кво); |Функция ПКво = Приход(Кво); |Функция РКво = Расход(Кво);"; Если Запр.Выполнить(ТекстЗапр)=0 Тогда Возврат; КонецЕсли; | Хотя и сам мог открыть один из отчетов имеюшихся в конфигурации и посмотреть. Serg0FFan Согласен, что возможен и такой вариант, это уже вопрос оптимизации выплненияю. Посему сразу же вопросик, никто не встречал статей по оптимизации скорости исполнения. Имеется ввиду что быстрее запрос к регистрам, перебор по докуметам с записью в ТЗ или запрос к БИ, и т.п. | Всего записей: 228 | Зарегистр. 19-04-2004 | Отправлено: 09:10 29-04-2004 | Исправлено: VBulat, 10:01 29-04-2004 |
|