Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[1С:Предприятие 7.7]

Оптимизация расчета сумм остатков по группам

IceBeerg
читатель
офлайн
Дата регистрации: 06.10.2004
Сообщений: 803
Пост №1
 
03.09.2013 18:35

Посабжу: есть запрос который получает из регистра остатаков остатки товара на начало и конец периода, далее на его основе заполняется таблица значений, где получается цена товара на начало и конец периода, перемножаются соответственно на остаок на начало и конец периода и записываются в соответствующие столбцы ТЗ.<br>Вопрос в следующем: как наиболее оптимально/быстро далее посчитать сумму по группам товаров?

IceBeerg
читатель
офлайн
Дата регистрации: 06.10.2004
Сообщений: 803
Пост №2
 
03.09.2013 18:37

Да, цена - периодический реквизит справочника

Денис (САМАРА)
читатель
офлайн
Дата регистрации: 09.04.2008
Сообщений: 8351
Пост №3
 
04.09.2013 11:13

Это все можно сделать сразу в запросе, а итоги получить посчитам сумму "Суммы остатка" по иерархии.

IceBeerg
читатель
офлайн
Дата регистрации: 06.10.2004
Сообщений: 803
Пост №4
 
04.09.2013 11:26

<span>> Это все можно сделать сразу в запросе, а итоги получить посчитам сумму "Суммы остатка" по иерархии</span><br>Например? Как получить в запросе цену товара на начало и конец периода?<br><span>> итоги получить посчитам сумму "Суммы остатка" по иерархии</span><br>И это, пожалуйста, на примере.

Денис (САМАРА)
читатель
офлайн
Дата регистрации: 09.04.2008
Сообщений: 8351
Пост №5
 
04.09.2013 11:45

> Как получить в запросе цену товара на начало и конец периода?<br><br> - Получаешь даты изменения цены за интервал дат.<br> - Получаешь ближайшую дату к дате начала периода и ближайшую дату изменения цены к дате конца периода.<br> - Получаешь цены на эти даты.<br>> И это, пожалуйста, на примере.<br>Пример получения цен на начало и конец интервала можно поискать на "мисте".

Prikum
активный пользователь
офлайн
Дата регистрации: 18.02.2002
Сообщений: 21001
Пост №6
 
04.09.2013 11:53

Это все можно сделать для 7.7?

IceBeerg
читатель
офлайн
Дата регистрации: 06.10.2004
Сообщений: 803
Пост №7
 
04.09.2013 12:07

<span>> Получаешь даты изменения цены за интервал дат.</span><br>В запросе? 80 Как?<br>> Пример получения цен на начало и конец интервала можно поискать на "мисте".<br>Не нашел :(

Денис (САМАРА)
читатель
офлайн
Дата регистрации: 09.04.2008
Сообщений: 8351
Пост №8
 
04.09.2013 12:16

Даже не говори мне про 7.7 ничего! :)

Денис (САМАРА)
читатель
офлайн
Дата регистрации: 09.04.2008
Сообщений: 8351
Пост №9
 
04.09.2013 12:20

А-аа, протупил что это для 7.7 все надо...

Thorvardr
читатель
офлайн
Дата регистрации: 25.02.2005
Сообщений: 3082
Пост №10
 
04.09.2013 16:06

"Весь этот головняк потому что в запросах 7.7 значения периодических реквизитов вычисляются только на конечную дату запроса. Кроме того, прямо в тексте запроса проблематично написать какое то подобное вычисление:<br> <br> <br><pre>|Функция КонОценочнаяСтоимость = ЦенаНаКонец*КонОст(Количество); </pre><br><br> <br> <br>хотя есть незадокументированная "фича", где можно написать что то типа такого:<br> <br> <br><pre>|Цена=Справочник.Цены.Цена;<br>|Функция КонКоличество=КонОст(Количество);<br>|Функция КонОценочнаяСтоимость = Сумма(Цена*Запрос.КонКоличество); </pre><br><br>и оно даже что то вычисляет, но иногда результат логике вообще не поддается<br> <br>Если отвечать на поставленный вопрос "в лоб", то постобработкой можно, конечно, сделать рассчет итогов по группам примерно вот так:<br> <br><br><pre>ТаблТоваров=СоздатьОбъект("ТаблицаЗначений");<br>ТаблТоваров.НоваяКолонка("Товар","Справочник.Номенклатура");<br>ТаблТоваров.НоваяКолонка("ОценочнаяСтоимостьНаНачало","Число",15,2);<br>ТаблТоваров.НоваяКолонка("ОценочнаяСтоимостьНаКонец","Число",15,2);<br>//...<br>//тут таблица как то заполняется по запросу и перебором периодики цен<br>//...<br>Если ТаблТоваров.КоличествоСтрок()>0 Тогда<br> ТаблИтогов=СоздатьОбъект("ТаблицаЗначений");<br> ТаблТоваров.Выгрузить(ТаблИтогов);<br> ТаблИтогов.НоваяКолонка("Родитель","Справочник.Номенклатура");<br> Пока 1=1 Цикл<br>       Для i=1 По ТаблИтогов.КоличествоСтрок() Цикл<br>             ТаблИтогов.УстановитьЗначение(i,"Родитель",ТаблИтогов.ПолучитьЗначение(i,"Товар").Родитель);<br>       КонецЦикла;<br><br>       ТаблИтогов.Свернуть("Родитель","ОценочнаяСтоимостьНаНачало,ОценочнаяСтоимостьНаКонец");<br><br>       Если ТаблИтогов.КоличествоСтрок()=1 Тогда<br>             Если ПустоеЗначение(ТаблИтогов.ПолучитьЗначение(1,"Родитель"))=1 Тогда<br>                   Прервать;<br>             КонецЕсли;<br>       КонецЕсли;<br><br>       ТаблИтогов.НоваяКолонка("Товар","Справочник.Номенклатура");<br>       Для i=1 По ТаблИтогов.КоличествоСтрок() Цикл<br>             Если ПустоеЗначение(ТаблИтогов.ПолучитьЗначение(i,"Родитель"))=0 Тогда<br>                   ТаблТоваров.НоваяСтрока();<br>                   ТаблТоваров.Товар=ТаблИтогов.ПолучитьЗначение(i,"Родитель");<br>                   ТаблТоваров.ОценочнаяСтоимостьНаНачало=ТаблИтогов.ПолучитьЗначение(i,"ОценочнаяСтоимостьНаНачало");<br>                   ТаблТоваров.ОценочнаяСтоимостьНаКонец=ТаблИтогов.ПолучитьЗначение(i,"ОценочнаяСтоимостьНаКонец");<br>                   ТаблИтогов.УстановитьЗначение(i,"Товар",ТаблИтогов.ПолучитьЗначение(i,"Родитель"));<br>             КонецЕсли;<br>       КонецЦикла;<br> КонецЦикла;<br>КонецЕсли;<br><br>ТаблТоваров.Свернуть("Товар","ОценочнаяСтоимостьНаНачало,ОценочнаяСтоимостьНаКонец");<br>//в итоге в ТаблТоваров окажутся помимо сведений о товарах еще и сведения о суммах, собранных по вышестоящим родителям вплоть до корневого уровня </pre>"

Показывать по 10 20 40 сообщений

Читают тему:

1 гостей
Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация