|
Задача по сравнению остатка | ☑ | ||
---|---|---|---|---|
0
Медвепут
04.06.14
✎
12:05
|
Есть некий статус документа обработано ,не обработано
при изменении его таб часть выгружаем в регистр при повторном изменении сравниваем таб часть с регистром поля номен .колич Как бы вы реализовали данный механизм ? |
|||
1
Господин ПЖ
04.06.14
✎
12:09
|
если для уф - взять из БСП "версионность"
|
|||
2
Медвепут
04.06.14
✎
12:39
|
8/1 не уф к сожалению
|
|||
3
Kalambur
04.06.14
✎
12:42
|
ПередЗаписью сравнивают таблицу и записи регистра
|
|||
4
Яйца 1С
04.06.14
✎
12:52
|
(0) Запросом!
|
|||
5
kosts
04.06.14
✎
12:57
|
Цикл по строкам с вложенным циклом по колонкам, с вложенным условием. В 10 строк уложиться можно
|
|||
6
МихаилМ
04.06.14
✎
13:02
|
||||
7
Медвепут
04.06.14
✎
16:50
|
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. Если Статус = Перечисления.Статусы.Необработано Тогда Для Каждого ТекСтрокаСписокТоваров Из СписокТоваров Цикл // регистр СтатусыР Расход Движение = Движения.СтатусыР.Добавить(); //Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Номенклатура = ТекСтрокаСписокТоваров.Номенклатура; Движение.КоличФакт= ТекСтрокаСписокТоваров.Количество; Движения.СтатусыР.Записать(); КонецЦикла; КонецЕсли; Если Статус = Перечисления.Статусы.Обработано или Статус = Перечисления.Статусы.ВОбработке Тогда Для Каждого ТекСтрокаСписокТоваров Из СписокТоваров Цикл // регистр СтатусыР Расход Движение = Движения.СтатусыР.Добавить(); //Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Номенклатура = ТекСтрокаСписокТоваров.Номенклатура; Движение.Количество= ТекСтрокаСписокТоваров.Количество; Движения.СтатусыР.Записать(); КонецЦикла; КонецЕсли; Запрос = Новый запрос; Запрос.Текст = "ВЫБРАТЬ | РасходнаяСписокТоваров.Номенклатура КАК Номенклатура, | СУММА(РасходнаяСписокТоваров.Количество) КАК КолДок |ПОМЕСТИТЬ ДокТч |ИЗ | Документ.Расходная.СписокТоваров КАК РасходнаяСписокТоваров |ГДЕ | РасходнаяСписокТоваров.Ссылка = &Ссылка | |СГРУППИРОВАТЬ ПО | РасходнаяСписокТоваров.Номенклатура | |ИНДЕКСИРОВАТЬ ПО | Номенклатура |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ДокТч.Номенклатура КАК Номенклатура, | СУММА(ДокТч.Количество) КАК КолДок, | ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК КолРег, | ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличФактОстаток, 0) КАК КолФак |ИЗ | Документ.Расходная.СписокТоваров КАК ДокТч | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтатусыР.Остатки( | &МоментВремени, | Номенклатура В | (ВЫБРАТЬ | ДокТч.Номенклатура | ИЗ | ДокТч КАК ДокТч)) КАК ОстаткиНоменклатурыОстатки | ПО ДокТч.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура | |СГРУППИРОВАТЬ ПО | ДокТч.Номенклатура, | ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0), | ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличФактОстаток, 0) | |УПОРЯДОЧИТЬ ПО | Номенклатура"; Запрос.УстановитьПараметр("Ссылка",Ссылка); Запрос.УстановитьПараметр("МоментВремени",МоментВремени()); запросРезультат = Запрос.Выполнить(); Выборка = запросРезультат.Выбрать(); Пока Выборка.Следующий() Цикл Если Выборка.КолРег<>Выборка.КолФак Тогда Отказ = Истина; Сообщить("количество факт отличается!!!"+ Выборка.КолФак+" от "+ Выборка.Номенклатура+"Док"+ ""+ Выборка.КолРег+""+Выборка.Номенклатура ); Конецесли; КонецЦикла; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |