Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
24 ноя 2024, 07:39

табличная часть, регистр и отчет

Автор Rokov, 12 окт 2011, 18:23

0 Пользователей и 1 гость просматривают эту тему.

Rokov

Ага, спасибо, мысли действительно ценные...Сделал периодический регистр. То есть алгоритм такой:
При выдаче задания (проведении документа расчет) заносим данные о видах работ в регистр, типа план.
Допустим
Работа 1, 250 пунктов
Работа 2, 130 площадок
(естественно, единицы измерения в отдельном реквизите)
Как только необходимо ввести факт - вводим его через обработку, которая получает срез последних , отнимает от них фактическое исполнение и записывает  в регистр остаток.
Выполнено за январь:
Работа 1, 20 пунктов
Работа 2, 30 площадок
Обработка записывает в регистр с периодом январь:
Работа 1, 230 пунктов
Работа 2, 100 площадок
Так понимаю?

Rokov

а зачем  в регистре "индексированный реквизит "закрыта" и дату"
?
Дата же будет автоматом, так как периодический регистр, а реквизит такой зачем?

Rokov

ВЫБРАТЬ
   СостояниеРаботПоРСССрезПоследних.Период как ДатаПоследнегоФакта,
   СостояниеРаботПоРСССрезПоследних.Работа ,
   СостояниеРаботПоРСССрезПоследних.ОбъемРабот как ОбъемОстаток,
   СостояниеРаботПоРСССрезПоследних.Стоимость  как СтоимостьОстаток
ИЗ
   РегистрСведений.СостояниеРаботПоРСС.СрезПоследних(&Период, ) КАК СостояниеРаботПоРСССрезПоследних

Выдает остаток выполнения. Как в этот же запрос добавить то, что выдано по заданию?

Rokov

ВЫБРАТЬ
   СостояниеРаботПоРСССрезПоследних.Период,
   СостояниеРаботПоРСССрезПоследних.Работа,
   СостояниеРаботПоРСССрезПоследних.ОбъемРабот,
   СостояниеРаботПоРСССрезПоследних.Стоимость,
   СостояниеРаботПоРСС.Период КАК Период1,
   СостояниеРаботПоРСС.Работа КАК Работа1,
   СостояниеРаботПоРСС.ОбъемРабот КАК ОбъемРабот1,
   СостояниеРаботПоРСС.Стоимость КАК Стоимость1
ИЗ
   РегистрСведений.СостояниеРаботПоРСС КАК СостояниеРаботПоРСС
      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботПоРСС.СрезПоследних(&Период, ) КАК СостояниеРаботПоРСССрезПоследних
      ПО СостояниеРаботПоРСС.Работа = СостояниеРаботПоРСССрезПоследних.Работа

   

Выдает не только начальное и конечное состояние, но и все промежуточные....

Rokov

если добавляю

СГРУППИРОВАТЬ ПО
   СостояниеРаботПоРСС.Работа
выдает ошибку

Ошибка получения информации набора данных
по причине:
Ошибка в запросе набора данных
по причине:
{(2, 2)}: Поле не входит в группу "СостояниеРаботПоРСССрезПоследних.Период"
<<?>>СостояниеРаботПоРСССрезПоследних.Период,

Rokov

Взял из  Справочник.РаботыПоРСС :
ВЫБРАТЬ
   Выполнено.Период КАК ДатаПоследнегоФакта,
   Выполнено.Работа,
   Выполнено.ОбъемРабот КАК ОбъемОстаток,
   Выполнено.Стоимость КАК СтоимостьОстаток,
   ВыданоПоПЗ.Объем,
   ВыданоПоПЗ.Стоимость,
   ВыданоПоПЗ.ФОТ,
   ВыданоПоПЗ.Объем - Выполнено.ОбъемРабот КАК ВыполненоПоТекущийМесяц,
   ВыданоПоПЗ.Стоимость - Выполнено.Стоимость КАК ВыплаченоПоТекущийМесяц,
   ВыполненоПоПрошлыймесяц.Период,
   ВыполненоПоПрошлыймесяц.Работа КАК Работа1,
   ВыполненоПоПрошлыймесяц.ОбъемРабот КАК ОбъемПредМесяц,
   ВыполненоПоПрошлыймесяц.Стоимость КАК СтоимостьПредМесяц
ИЗ
   РегистрСведений.СостояниеРаботПоРСС.СрезПоследних(&Период, ) КАК Выполнено
      ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РаботыПоРСС КАК ВыданоПоПЗ
      ПО Выполнено.Работа = ВыданоПоПЗ.Ссылка
      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботПоРСС.СрезПоследних(&ПериодПредМес, ) КАК ВыполненоПоПрошлыймесяц
      ПО Выполнено.Работа = ВыполненоПоПрошлыймесяц.Работа

comol

Цитата: Rokov от 16 окт 2011, 17:57
а зачем  в регистре "индексированный реквизит "закрыта" и дату"
?
Дата же будет автоматом, так как периодический регистр, а реквизит такой зачем?
Закрыта - для производительности... вам же работы скорее всего не закрытые в отчете чаще всего будут нужны. А "Дата", потому что не всегда периодический регистр удобен... вам он скорее будет не удобен..
Статьи по оптимизации 1С: http://comol.livejournal.com/

comol

Цитата: Rokov от 16 окт 2011, 17:57
а зачем  в регистре "индексированный реквизит "закрыта" и дату"
?
Дата же будет автоматом, так как периодический регистр, а реквизит такой зачем?

Цитата: Rokov от 16 окт 2011, 17:57
а зачем  в регистре "индексированный реквизит "закрыта" и дату"
?
Дата же будет автоматом, так как периодический регистр, а реквизит такой зачем?
Закрыта - для производительности... вам же работы скорее всего не закрытые в отчете чаще всего будут нужны. А "Дата", потому что не всегда периодический регистр удобен... вам он скорее будет не удобен..
Статьи по оптимизации 1С: http://comol.livejournal.com/

comol

Цитата: Rokov от 16 окт 2011, 19:00
ВЫБРАТЬ
   СостояниеРаботПоРСССрезПоследних.Период как ДатаПоследнегоФакта,
   СостояниеРаботПоРСССрезПоследних.Работа ,
   СостояниеРаботПоРСССрезПоследних.ОбъемРабот как ОбъемОстаток,
   СостояниеРаботПоРСССрезПоследних.Стоимость  как СтоимостьОстаток
ИЗ
   РегистрСведений.СостояниеРаботПоРСС.СрезПоследних(&Период, ) КАК СостояниеРаботПоРСССрезПоследних

Выдает остаток выполнения. Как в этот же запрос добавить то, что выдано по заданию?

Срез последних не нужен.
Статьи по оптимизации 1С: http://comol.livejournal.com/

comol

Цитата: Rokov от 16 окт 2011, 19:33
ВЫБРАТЬ
   СостояниеРаботПоРСССрезПоследних.Период,
   СостояниеРаботПоРСССрезПоследних.Работа,
   СостояниеРаботПоРСССрезПоследних.ОбъемРабот,
   СостояниеРаботПоРСССрезПоследних.Стоимость,
   СостояниеРаботПоРСС.Период КАК Период1,
   СостояниеРаботПоРСС.Работа КАК Работа1,
   СостояниеРаботПоРСС.ОбъемРабот КАК ОбъемРабот1,
   СостояниеРаботПоРСС.Стоимость КАК Стоимость1
ИЗ
   РегистрСведений.СостояниеРаботПоРСС КАК СостояниеРаботПоРСС
      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботПоРСС.СрезПоследних(&Период, ) КАК СостояниеРаботПоРСССрезПоследних
      ПО СостояниеРаботПоРСС.Работа = СостояниеРаботПоРСССрезПоследних.Работа

   

Выдает не только начальное и конечное состояние, но и все промежуточные....

Уже писал... по основной таблице регистра нужен запрос. И лучше сделайте его не периодическим и добавьте реквизит "Дата"
Статьи по оптимизации 1С: http://comol.livejournal.com/

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск