Такая встала проблема. Есть регистр накопления НДС по приобретенным ценностям. В это регистре есть данные по счетам 41.01, весь счет 10(10.01-10.10) по субсчетам, 43,07. При 0 или отрицательном остатке количества в регистре, по измерениям: организация, счет, номенклатура, вывести регистр в 0 по всем измерениям, пишу обработку, как мне выводить данные в 0?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Получить Остатки на определенную дату запросом, при условии <=0, и по остаткам в таком запросе заполнить либо документ ВВодначальныхостатков или операцию, в которой весь такой хлам сбросить на счет 000
(11) Вожак, Все правильно, он 1 и есть. Вот в нем и делать дополнительные записи, либо удалять существующие. Весь бухучет ведется в 1 регистре Хозрасчетный. А таблиц в нем несколько, что вы и видите, например, в консоли запросов.
(14) deniseek77, такой запрос, я понимаю?
ВЫБРАТЬ
ХозрасчетныйВидыСубконто.Ссылка,
ХозрасчетныйВидыСубконто.НомерСтроки,
ХозрасчетныйВидыСубконто.ВидСубконто,
ХозрасчетныйВидыСубконто.Предопределенное,
ХозрасчетныйВидыСубконто.ТолькоОбороты,
ХозрасчетныйВидыСубконто.Суммовой,
ХозрасчетныйВидыСубконто.Валютный,
ХозрасчетныйВидыСубконто.Количественный
ИЗ
ПланСчетов.Хозрасчетный.ВидыСубконто КАК ХозрасчетныйВидыСубконто
ГДЕ
ХозрасчетныйВидыСубконто.Ссылка В ИЕРАРХИИ(&Ссылка)
Показать
(8) Вожак, После даты документа не будет, а до- будет, если хотите убрать вообще, то нужно убирать документы регистраторы. Либо искать в регистре хозрасчетный записи, которые делали такие записи и удалять проводки, эти непосредственно в том периоде.
Сейчас только весь 10 передается:
ВЫБРАТЬ
НДСПоПриобретеннымЦенностямОстатки.Организация,
НДСПоПриобретеннымЦенностямОстатки.СчетУчета,
НДСПоПриобретеннымЦенностямОстатки.Номенклатура,
НДСПоПриобретеннымЦенностямОстатки.Склад,
НДСПоПриобретеннымЦенностямОстатки.Партия,
НДСПоПриобретеннымЦенностямОстатки.СчетФактура,
НДСПоПриобретеннымЦенностямОстатки.НДСВключенВСтоимость,
НДСПоПриобретеннымЦенностямОстатки.ВидЦенности,
НДСПоПриобретеннымЦенностямОстатки.СчетУчетаНДС,
НДСПоПриобретеннымЦенностямОстатки.СтавкаНДС,
НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток,
НДСПоПриобретеннымЦенностямОстатки.СтоимостьОстаток,
НДСПоПриобретеннымЦенностямОстатки.НДСОстаток
ИЗ
РегистрНакопления.НДСПоПриобретеннымЦенностям.Остатки(&ДатаНачала, ) КАК НДСПоПриобретеннымЦенностямОстатки
ГДЕ
НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток >= 0
И НДСПоПриобретеннымЦенностямОстатки.СчетУчета В ИЕРАРХИИ(&СчетУчета)
Показать
Даже, вот так, думаю будет правильней? Как только остальные теперь туда еще счета подтянуть?
ВЫБРАТЬ
ХозрасчетныйВидыСубконто.Ссылка,
ХозрасчетныйВидыСубконто.НомерСтроки,
ХозрасчетныйВидыСубконто.ВидСубконто,
ХозрасчетныйВидыСубконто.Предопределенное,
ХозрасчетныйВидыСубконто.ТолькоОбороты,
ХозрасчетныйВидыСубконто.Суммовой,
ХозрасчетныйВидыСубконто.Валютный,
ХозрасчетныйВидыСубконто.Количественный,
НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток
ИЗ
ПланСчетов.Хозрасчетный.ВидыСубконто КАК ХозрасчетныйВидыСубконто
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.НДСПоПриобретеннымЦенностям.Остатки КАК НДСПоПриобретеннымЦенностямОстатки
ПО ХозрасчетныйВидыСубконто.Ссылка = НДСПоПриобретеннымЦенностямОстатки.СчетУчета
ГДЕ
ХозрасчетныйВидыСубконто.Ссылка В ИЕРАРХИИ(&Ссылка)
И НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток > 0
Показать
Если такой запрос, то только так
ГДЕ
ХозрасчетныйВидыСубконто.Ссылка В ИЕРАРХИИ(&Ссылка)
И НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток > 0
И ХозрасчетныйВидыСубконто.Ссылка В(&СписокСчетов)
Процедура КнопкаВыполнитьНажатие(Кнопка)
ОбработкаПрерыванияПользователя();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ХозрасчетныйВидыСубконто.Ссылка,
| ХозрасчетныйВидыСубконто.НомерСтроки,
| ХозрасчетныйВидыСубконто.ВидСубконто,
| ХозрасчетныйВидыСубконто.Предопределенное,
| ХозрасчетныйВидыСубконто.ТолькоОбороты,
| ХозрасчетныйВидыСубконто.Суммовой,
| ХозрасчетныйВидыСубконто.Валютный,
| ХозрасчетныйВидыСубконто.Количественный,
| НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток,
| НДСПоПриобретеннымЦенностямОстатки.Организация,
| НДСПоПриобретеннымЦенностямОстатки.СчетУчета,
| НДСПоПриобретеннымЦенностямОстатки.Номенклатура,
| НДСПоПриобретеннымЦенностямОстатки.Склад,
| НДСПоПриобретеннымЦенностямОстатки.Партия,
| НДСПоПриобретеннымЦенностямОстатки.СчетФактура,
| НДСПоПриобретеннымЦенностямОстатки.НДСВключенВСтоимость,
| НДСПоПриобретеннымЦенностямОстатки.ВидЦенности,
| НДСПоПриобретеннымЦенностямОстатки.СчетУчетаНДС,
| НДСПоПриобретеннымЦенностямОстатки.СтавкаНДС,
| НДСПоПриобретеннымЦенностямОстатки.СтоимостьОстаток,
| НДСПоПриобретеннымЦенностямОстатки.НДСОстаток
|ИЗ
| ПланСчетов.Хозрасчетный.ВидыСубконто КАК ХозрасчетныйВидыСубконто
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.НДСПоПриобретеннымЦенностям.Остатки(&ДатаНачала, ) КАК НДСПоПриобретеннымЦенностямОстатки
| ПО ХозрасчетныйВидыСубконто.Ссылка = НДСПоПриобретеннымЦенностямОстатки.СчетУчета
|ГДЕ
| ХозрасчетныйВидыСубконто.Ссылка В ИЕРАРХИИ(&Ссылка)
| И НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток > 0";
Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
Запрос.УстановитьПараметр("Ссылка", ПланыСчетов.Хозрасчетный.Материалы);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
ДокументВводаНачальныхОстатков = Документы.ВводНачальныхОстатков.СоздатьДокумент();
ДокументВводаНачальныхОстатков.Дата = ДатаНачала;
ДокументВводаНачальныхОстатков.Организация = Организация;
ДокументВводаНачальныхОстатков.ПодразделениеОрганизации = Подразделение;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
НазваниеСчетаУчетаДляДокументаВводаНачОстатков = ВыборкаДетальныеЗаписи.СчетУчета.Родитель.Наименование;
Если НазваниеСчетаУчетаДляДокументаВводаНачОстатков = "Материалы" Тогда
ДокументВводаНачальныхОстатков.РазделУчета = Перечисления.РазделыУчетаДляВводаОстатков.Материалы;
КонецЕсли;
КонецЦикла;
Попытка
ДокументВводаНачальныхОстатков.Записать();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки
КонецПроцедуры
Показатьпри создании документа количество в 0 выводить или как?
У меня счетов таких нет, но наверное как то так... Только ограничить по периоду, организации еще
ВЫБРАТЬ
ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт,
ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокКт,
ХозрасчетныйОстаткиИОбороты.Регистратор,
ХозрасчетныйОстаткиИОбороты.Счет
ИЗ
(ВЫБРАТЬ
Хозрасчетный.СчетДт КАК СчетДт,
Хозрасчетный.СчетКт КАК СчетКт,
Хозрасчетный.Регистратор КАК Регистратор
ИЗ
РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
ГДЕ
Хозрасчетный.СчетДт В(&СчДт)
И Хозрасчетный.СчетКт В(&СчКт)) КАК ВложенныйЗапрос
ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(, , Запись, ДвиженияИГраницыПериода, , , ) КАК ХозрасчетныйОстаткиИОбороты
ПО (ХозрасчетныйОстаткиИОбороты.Регистратор = ВложенныйЗапрос.Регистратор)
И (ВложенныйЗапрос.СчетДт = ХозрасчетныйОстаткиИОбороты.Счет
ИЛИ ВложенныйЗапрос.СчетКт = ХозрасчетныйОстаткиИОбороты.Счет)
ГДЕ
(ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт <= 0
ИЛИ ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокКт <= 0)
Показать
Регистр в 0 лучше выводить документом "Корректировкой записей регистра" на основании запроса к виртуальной таблице регистра "Остатки" на дату.
Делал так:
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| НДСПоПриобретеннымЦенностямОстатки.Организация,
| НДСПоПриобретеннымЦенностямОстатки.СчетУчета,
| НДСПоПриобретеннымЦенностямОстатки.Номенклатура,
| НДСПоПриобретеннымЦенностямОстатки.Склад,
| НДСПоПриобретеннымЦенностямОстатки.Партия,
| НДСПоПриобретеннымЦенностямОстатки.СчетФактура,
| НДСПоПриобретеннымЦенностямОстатки.НДСВключенВСтоимость,
| НДСПоПриобретеннымЦенностямОстатки.ВидЦенности,
| НДСПоПриобретеннымЦенностямОстатки.СчетУчетаНДС,
| НДСПоПриобретеннымЦенностямОстатки.СтавкаНДС,
| -НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток * -1 КАК Количество,
| -НДСПоПриобретеннымЦенностямОстатки.СтоимостьОстаток КАК Стоимость,
| -НДСПоПриобретеннымЦенностямОстатки.НДСОстаток КАК НДС
|ИЗ
| РегистрНакопления.НДСПоПриобретеннымЦенностям.Остатки(&КонДата, ) КАК НДСПоПриобретеннымЦенностямОстатки
|ГДЕ
| НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток <= 0";
Запрос.УстановитьПараметр("конДата", Дата);
Результат = Запрос.Выполнить();
ТаблицаОстатков = Результат.Выгрузить();
Если ТаблицаОстатков.Количество()=0 Тогда
Продолжить;
КонецЕсли;
Для Каждого строкаОстатков из ТаблицаОстатков Цикл
Если СтрокаОстатков.СчетУчета.Код = ПланыСчетов.Хозрасчетный.ТоварыНаСкладах.Код ИЛИ СтрокаОстатков.СчетУчета.Код = ПланыСчетов.Хозрасчетный.ГотоваяПродукция.Код ИЛИ СтрокаОстатков.СчетУчета.Код = ПланыСчетов.Хозрасчетный.ОборудованиеКУстановке.Код Тогда
стрДвижений = Докум.Движения[Рег.Имя].Добавить();
ЗаполнитьЗначенияСвойств(стрДвижений, строкаОстатков);
стрДвижений.Период = НачалоДня(Дата);
КонецЕсли;
Если СтрокаОстатков.СчетУчета.Родитель = ПланыСчетов.Хозрасчетный.Материалы Тогда
стрДвижений = Докум.Движения[Рег.Имя].Добавить();
ЗаполнитьЗначенияСвойств(стрДвижений, строкаОстатков);
стрДвижений.Период = НачалоДня(Дата);
КонецЕсли;
КонецЦикла;
Докум.Комментарий = "Создан обработкой обнуления остатков по регистру "+Рег.Синоним;
Докум.Дата = НачалоДня(Дата);
//Докум.Записать();
Конеццикла;
Форма = Докум.ПолучитьФорму("ФормаДокумента");
Форма.Открыть();
Показать
(26) PSMNN, вот полный код. Док операция бух
Докум = Документы.ОперацияБух.СоздатьДокумент();
стрРег = Докум.ТаблицаРегистровНакопления.Добавить();
стрРег.Имя = "НДСПоПриобретеннымЦенностям";
стрРег.Представление = "НДС по приобретенным ценностям";
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| НДСПоПриобретеннымЦенностямОстатки.Организация,
| НДСПоПриобретеннымЦенностямОстатки.СчетУчета,
| НДСПоПриобретеннымЦенностямОстатки.Номенклатура,
| НДСПоПриобретеннымЦенностямОстатки.Склад,
| НДСПоПриобретеннымЦенностямОстатки.Партия,
| НДСПоПриобретеннымЦенностямОстатки.СчетФактура,
| НДСПоПриобретеннымЦенностямОстатки.НДСВключенВСтоимость,
| НДСПоПриобретеннымЦенностямОстатки.ВидЦенности,
| НДСПоПриобретеннымЦенностямОстатки.СчетУчетаНДС,
| НДСПоПриобретеннымЦенностямОстатки.СтавкаНДС,
| -НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток КАК Количество,
| -НДСПоПриобретеннымЦенностямОстатки.СтоимостьОстаток КАК Стоимость,
| -НДСПоПриобретеннымЦенностямОстатки.НДСОстаток КАК НДС
|ИЗ
| РегистрНакопления.НДСПоПриобретеннымЦенностям.Остатки(&КонДата, ) КАК НДСПоПриобретеннымЦенностямОстатки
|ГДЕ
| НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток <= 0";
Запрос.УстановитьПараметр("конДата", ДатаОбнуления);
Результат = Запрос.Выполнить().Выгрузить();
Для каждого СтрокаОстатков Из Результат Цикл
Если СтрокаОстатков.СчетУчета.Код = ПланыСчетов.Хозрасчетный.ТоварыНаСкладах.Код ИЛИ СтрокаОстатков.СчетУчета.Код = ПланыСчетов.Хозрасчетный.ГотоваяПродукция.Код ИЛИ СтрокаОстатков.СчетУчета.Код = ПланыСчетов.Хозрасчетный.ОборудованиеКУстановке.Код Тогда
стрДвижений = Докум.Движения[стрРег.Имя].Добавить();
ЗаполнитьЗначенияСвойств(стрДвижений, строкаОстатков);
стрДвижений.Период = НачалоДня(ДатаОбнуления);
КонецЕсли;
Если СтрокаОстатков.СчетУчета.Родитель = ПланыСчетов.Хозрасчетный.Материалы Тогда
стрДвижений = Докум.Движения[стрРег.Имя].Добавить();
ЗаполнитьЗначенияСвойств(стрДвижений, строкаОстатков);
стрДвижений.Период = НачалоДня(ДатаОбнуления);
КонецЕсли;
Докум.Комментарий = "Создан обработкой обнуления остатков по регистру "+стрРег.Имя;
Докум.Дата = НачалоДня(ДатаОбнуления);
//Докум.Записать();
Конеццикла;
Форма = Докум.ПолучитьФорму("ФормаДокумента");
Форма.Открыть();
Показать
В УПП у ОперацииБух нет движений по НДС по приобретенным ценностям, если в БП корп 2.0 для ОперацииБух разрешены такие движения, то все ОК
Смотрю в БП на форме документа "Операция (бухгалтерский и налоговый учет)" есть кнопка "Корректировка регистров", значит и регистры можно двигать.
да, если будут проблемы с записью, то тебе программно этот выбор надо сделать: установить реквизит и выбрать регистр
В условии у тебя
НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток <= 0";
поставь
НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток <> 0";
НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток <= 0";
поставь
НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток <> 0";
мы проверяем по каждоу номенклатурной позиции, лежащей на определённом складе организации и учитывающейся на конкретном счёте ее остаток. (Этот остаток получается сложением остатков указанной номенлатуры в разрезе партий). Далее, если остаток <=0.... , обнуляем КАЖДУЮ партию. Вывести регистр в 0 означает, получить этот 0 в сумме по номенклатурной позиции. ДЛЯ чего в 0 выводится все иизмерения
(39) PSMNN,
GPS приемник SL M30/*4 сер.д/рем.FEE02 - однуу запись обнулили, вторую - нет
GPS приемник SL M30/*4 сер.д/рем.FEE02
-1,000
-594,72
-90,72
Поступление товаров и услуг БПСПБ004260 от 23.12.2013 0:00:00 1,000
594,72
90,72
первая запись - без партии попала в документ, втораая - с партией "ПТУ № 4260..." в докуумент не попала
GPS приемник SL M30/*4 сер.д/рем.FEE02 - однуу запись обнулили, вторую - нет
GPS приемник SL M30/*4 сер.д/рем.FEE02
-1,000
-594,72
-90,72
Поступление товаров и услуг БПСПБ004260 от 23.12.2013 0:00:00 1,000
594,72
90,72
первая запись - без партии попала в документ, втораая - с партией "ПТУ № 4260..." в докуумент не попала
(39) PSMNN, то есть мы ищем сначала номенклатуру, потом смотрим на каком складе она есть, смотрим, чтобы счет у этой номенклатуры был из списка: 10,43,07,41.01. Если все требования удовлетворяются, то смотрим количество на складе по этой номенклатуре. Если оно <=0, тогда мы обнуляем каждую парнтию
(42) PSMNN, нет, если в строке с номенклатурой приход расход нач и кон остаток пустая строка, а при разворачивании мы видим что там есть минусы, или какие либо еще значения, то мы должны обнулить по партиям, на которых минусы висят в 0, чтобы при следующем формировании отчета эта номенклатура не выводилась
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| НДСПоПриобретеннымЦенностямОстатки.Организация,
| НДСПоПриобретеннымЦенностямОстатки.СчетУчета,
| НДСПоПриобретеннымЦенностямОстатки.Номенклатура,
| НДСПоПриобретеннымЦенностямОстатки.Склад,
| НДСПоПриобретеннымЦенностямОстатки.Партия,
| НДСПоПриобретеннымЦенностямОстатки.СчетФактура,
| НДСПоПриобретеннымЦенностямОстатки.НДСВключенВСтоимость,
| НДСПоПриобретеннымЦенностямОстатки.ВидЦенности,
| НДСПоПриобретеннымЦенностямОстатки.СчетУчетаНДС,
| НДСПоПриобретеннымЦенностямОстатки.СтавкаНДС,
| -НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток КАК Количество,
| -НДСПоПриобретеннымЦенностямОстатки.СтоимостьОстаток КАК Стоимость,
| -НДСПоПриобретеннымЦенностямОстатки.НДСОстаток КАК НДС
|ИЗ
| РегистрНакопления.НДСПоПриобретеннымЦенностям.Остатки(&КонДата, ) КАК НДСПоПриобретеннымЦенностямОстатки
|ГДЕ
| НДСПоПриобретеннымЦенностямОстатки.Организация = &Организация
| И НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток <= 0";
Запрос.УстановитьПараметр("конДата", Новый Граница (КонецДня(Дата), ВидГраницы.Включая));
Запрос.УстановитьПараметр("Организация", Организация);
Показатьпросто строку с партией убрать из запроса?
Да, уже смотреть с отбором по каждой номенклатуре из чего состоит минус по партиям и их схлапывать, я так думаю
В запросе к регистру делай отбор по условию на эту номенклатуру и анализируй из каких партий сложился минус и какие хочешь схлапывай
(55) PSMNN, а можно сразу в одном запросе все это сделать?
Вот запрос без партий, что мне потом сделать с результатом запроса? или росто добавить условия в этот запрос?
ВЫБРАТЬ
НДСПоПриобретеннымЦенностямОстатки.Организация,
НДСПоПриобретеннымЦенностямОстатки.СчетУчета,
НДСПоПриобретеннымЦенностямОстатки.Номенклатура,
НДСПоПриобретеннымЦенностямОстатки.Склад,
НДСПоПриобретеннымЦенностямОстатки.СчетФактура,
НДСПоПриобретеннымЦенностямОстатки.НДСВключенВСтоимость,
НДСПоПриобретеннымЦенностямОстатки.ВидЦенности,
НДСПоПриобретеннымЦенностямОстатки.СчетУчетаНДС,
НДСПоПриобретеннымЦенностямОстатки.СтавкаНДС,
-НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток КАК Количество,
-НДСПоПриобретеннымЦенностямОстатки.СтоимостьОстаток КАК Стоимость,
-НДСПоПриобретеннымЦенностямОстатки.НДСОстаток КАК НДС
ИЗ
РегистрНакопления.НДСПоПриобретеннымЦенностям.Остатки(&КонДата, ) КАК НДСПоПриобретеннымЦенностямОстатки
ГДЕ
НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток <= 0
И НДСПоПриобретеннымЦенностямОстатки.Организация = &Организация
ПоказатьВот запрос без партий, что мне потом сделать с результатом запроса? или росто добавить условия в этот запрос?
Я думаю в одном запросе не получится, тебе же нужно потом интеллектуально анализировать из чего сложился по партиям конкретный минус по конкретной номенклатуре.
ВЫБРАТЬ
НДСПоПриобретеннымЦенностямОстатки.Организация,
НДСПоПриобретеннымЦенностямОстатки.СчетУчета,
НДСПоПриобретеннымЦенностямОстатки.Номенклатура,
НДСПоПриобретеннымЦенностямОстатки.Склад,
НДСПоПриобретеннымЦенностямОстатки.СчетФактура,
НДСПоПриобретеннымЦенностямОстатки.НДСВключенВСтоимость,
НДСПоПриобретеннымЦенностямОстатки.ВидЦенности,
НДСПоПриобретеннымЦенностямОстатки.СчетУчетаНДС,
НДСПоПриобретеннымЦенностямОстатки.СтавкаНДС,
-НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток КАК Количество,
-НДСПоПриобретеннымЦенностямОстатки.СтоимостьОстаток КАК Стоимость,
-НДСПоПриобретеннымЦенностямОстатки.НДСОстаток КАК НДС
ИЗ
РегистрНакопления.НДСПоПриобретеннымЦенностям.Остатки(&КонДата, ) КАК НДСПоПриобретеннымЦенностямОстатки
ГДЕ
НДСПоПриобретеннымЦенностямОстатки.Организация = &Организация
И НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток <= 0
ПоказатьЭтим запросом я получаю всю номенклатуру в разрезе организация,складов, но НЕ ПАРТИЙ! Далее все это помещаю в ТЗ. Затем мне нужно смотреть каждую строку, если в строке количество <=0 Тогда мы строку с этим номенклатурой должны раскрывать до партий, и все партии обнулять, не выходит так совсем(
Но ведь так могут быть внутри минусовые остатки по партиям...
а если надо именно проверить общий остаток <0 а потом только партии - то можешь написать потом еще подзапрос - если нашел такую позицию - получи все остатки в разрезе партий и их обнляй
а если надо именно проверить общий остаток <0 а потом только партии - то можешь написать потом еще подзапрос - если нашел такую позицию - получи все остатки в разрезе партий и их обнляй
(61) kejsi, делал так, конечно запрос в запросе плохо, но другого варианта не придумал:
единственное что смущает, это некоторые позиции, которые при запросе по партиям не отображаются, но в отчете они с партиями находятся и не обнуляются
запрос.Текст = "ВЫБРАТЬ
| НДСПоПриобретеннымЦенностямОстатки.Организация,
| НДСПоПриобретеннымЦенностямОстатки.СчетУчета,
| НДСПоПриобретеннымЦенностямОстатки.Номенклатура,
| НДСПоПриобретеннымЦенностямОстатки.Склад,
| НДСПоПриобретеннымЦенностямОстатки.СчетФактура,
| НДСПоПриобретеннымЦенностямОстатки.НДСВключенВСтоимость,
| НДСПоПриобретеннымЦенностямОстатки.ВидЦенности,
| НДСПоПриобретеннымЦенностямОстатки.СчетУчетаНДС,
| НДСПоПриобретеннымЦенностямОстатки.СтавкаНДС,
| -НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток КАК Количество,
| -НДСПоПриобретеннымЦенностямОстатки.СтоимостьОстаток КАК Стоимость,
| -НДСПоПриобретеннымЦенностямОстатки.НДСОстаток КАК НДС
|ИЗ
| РегистрНакопления.НДСПоПриобретеннымЦенностям.Остатки(&ДатаКон, ) КАК НДСПоПриобретеннымЦенностямОстатки
|ГДЕ
| НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток <= 0";
Запрос.УстановитьПараметр("ДатаКон", Новый Граница (КонецДня(Дата), ВидГраницы.Включая));
Запрос.УстановитьПараметр("Организация", Организация);
Результат = Запрос.Выполнить();
ТаблицаОстатков = Результат.Выгрузить();
Если ТаблицаОстатков.Количество()=0 Тогда
Продолжить;
КонецЕсли;
Для Каждого строкаОстатков из ТаблицаОстатков Цикл
ЗапросПоНоменклатуреСПартиями = Новый Запрос;
ЗапросПоНоменклатуреСПартиями.Текст = "ВЫБРАТЬ
| НДСПоПриобретеннымЦенностямОстатки.Организация,
| НДСПоПриобретеннымЦенностямОстатки.СчетУчета,
| НДСПоПриобретеннымЦенностямОстатки.Номенклатура,
| НДСПоПриобретеннымЦенностямОстатки.Склад,
| НДСПоПриобретеннымЦенностямОстатки.Партия,
| НДСПоПриобретеннымЦенностямОстатки.СчетФактура,
| НДСПоПриобретеннымЦенностямОстатки.НДСВключенВСтоимость,
| НДСПоПриобретеннымЦенностямОстатки.ВидЦенности,
| НДСПоПриобретеннымЦенностямОстатки.СчетУчетаНДС,
| НДСПоПриобретеннымЦенностямОстатки.СтавкаНДС,
| -НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток КАК Количество,
| -НДСПоПриобретеннымЦенностямОстатки.СтоимостьОстаток КАК Стоимость,
| -НДСПоПриобретеннымЦенностямОстатки.НДСОстаток КАК НДС
|ИЗ
| РегистрНакопления.НДСПоПриобретеннымЦенностям.Остатки(&ДатаКон, ) КАК НДСПоПриобретеннымЦенностямОстатки
|ГДЕ
| НДСПоПриобретеннымЦенностямОстатки.Номенклатура = &Номенклатура
| И НДСПоПриобретеннымЦенностямОстатки.Организация = &Организация";
ЗапросПоНоменклатуреСПартиями.УстановитьПараметр("ДатаКон", Новый Граница (КонецДня(Дата), ВидГраницы.Включая));
ЗапросПоНоменклатуреСПартиями.УстановитьПараметр("Организация", Организация);
ЗапросПоНоменклатуреСПартиями.УстановитьПараметр("Номенклатура", СтрокаОстатков.номенклатура);
РезультатПоПартиям = ЗапросПоНоменклатуреСПартиями.Выполнить().Выгрузить();
Для каждого Строка Из РезультатПоПартиям Цикл
Если Строка.СчетУчета.Код = ПланыСчетов.Хозрасчетный.ТоварыНаСкладах.Код ИЛИ Строка.СчетУчета.Код = ПланыСчетов.Хозрасчетный.ГотоваяПродукция.Код ИЛИ Строка.СчетУчета.Код = ПланыСчетов.Хозрасчетный.ОборудованиеКУстановке.Код ИЛИ Строка.СчетУчета.Родитель = ПланыСчетов.Хозрасчетный.Материалы Тогда
стрДвижений = Докум.Движения[Рег.Имя].Добавить();
ЗаполнитьЗначенияСвойств(стрДвижений, Строка);
стрДвижений.Период = КонецДня(Дата);
КонецЕсли;
КонецЦикла;
КонецЦикла;
Показатьединственное что смущает, это некоторые позиции, которые при запросе по партиям не отображаются, но в отчете они с партиями находятся и не обнуляются
хотя все равно не так, делал уже вот так:
ВЫБРАТЬ
| НДСПоПриобретеннымЦенностямОстатки.Организация,
| НДСПоПриобретеннымЦенностямОстатки.СчетУчета,
| НДСПоПриобретеннымЦенностямОстатки.Номенклатура,
| НДСПоПриобретеннымЦенностямОстатки.Склад,
| НДСПоПриобретеннымЦенностямОстатки.СчетФактура,
| НДСПоПриобретеннымЦенностямОстатки.НДСВключенВСтоимость,
| НДСПоПриобретеннымЦенностямОстатки.ВидЦенности,
| НДСПоПриобретеннымЦенностямОстатки.СчетУчетаНДС,
| НДСПоПриобретеннымЦенностямОстатки.СтавкаНДС,
| -НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток КАК Количество,
| -НДСПоПриобретеннымЦенностямОстатки.СтоимостьОстаток КАК Стоимость,
| -НДСПоПриобретеннымЦенностямОстатки.НДСОстаток КАК НДС,
| НДСПоПриобретеннымЦенностямОстатки.Партия
|ПОМЕСТИТЬ НоменклатураПоПартиям
|ИЗ
| РегистрНакопления.НДСПоПриобретеннымЦенностям.Остатки(&ДатаКон, ) КАК НДСПоПриобретеннымЦенностямОстатки
|ГДЕ
| НДСПоПриобретеннымЦенностямОстатки.Организация = &Организация
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| НоменклатураПоПартиям.Организация,
| НоменклатураПоПартиям.СчетУчета,
| НоменклатураПоПартиям.Номенклатура,
| НоменклатураПоПартиям.Склад,
| НоменклатураПоПартиям.СчетФактура,
| НоменклатураПоПартиям.НДСВключенВСтоимость,
| НоменклатураПоПартиям.ВидЦенности,
| НоменклатураПоПартиям.СчетУчетаНДС,
| НоменклатураПоПартиям.СтавкаНДС,
| НоменклатураПоПартиям.Партия,
| НоменклатураПоПартиям.Количество,
| НоменклатураПоПартиям.Стоимость,
| НоменклатураПоПартиям.НДС
|ИЗ
| НоменклатураПоПартиям КАК НоменклатураПоПартиям
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.НДСПоПриобретеннымЦенностям.Остатки КАК НДСПоПриобретеннымЦенностямОстатки
| ПО НоменклатураПоПартиям.Организация = НДСПоПриобретеннымЦенностямОстатки.Организация
|ГДЕ
| НоменклатураПоПартиям.Организация = &Организация
| И -НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток <= 0
Показать
Есть обработка по обнулению регистров и закрытию счетов с отборами, делает корректировку записей регистров. Во вложении файлик, нужен 1 маник.
Прикрепленные файлы:
Корректировка регистров.epf
вот че в итоге получилось:
Запрос.текст = "ВЫБРАТЬ
| НДСПоПриобретеннымЦенностямОстатки.Организация,
| НДСПоПриобретеннымЦенностямОстатки.СчетУчета,
| НДСПоПриобретеннымЦенностямОстатки.Номенклатура,
| НДСПоПриобретеннымЦенностямОстатки.Склад,
| НДСПоПриобретеннымЦенностямОстатки.СчетФактура,
| НДСПоПриобретеннымЦенностямОстатки.НДСВключенВСтоимость,
| НДСПоПриобретеннымЦенностямОстатки.ВидЦенности,
| НДСПоПриобретеннымЦенностямОстатки.СчетУчетаНДС,
| НДСПоПриобретеннымЦенностямОстатки.СтавкаНДС,
| -НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток КАК Количество,
| -НДСПоПриобретеннымЦенностямОстатки.СтоимостьОстаток КАК Стоимость,
| -НДСПоПриобретеннымЦенностямОстатки.НДСОстаток КАК НДС,
| НДСПоПриобретеннымЦенностямОстатки.Партия
|ИЗ
| РегистрНакопления.НДСПоПриобретеннымЦенностям.Остатки(&ДатаКон, Организация = &Организация) КАК НДСПоПриобретеннымЦенностямОстатки
| ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| НДСПоПриобретеннымЦенностямОстатки.Организация КАК Организация,
| НДСПоПриобретеннымЦенностямОстатки.СчетУчета КАК СчетУчета,
| НДСПоПриобретеннымЦенностямОстатки.Номенклатура КАК Номенклатура,
| НДСПоПриобретеннымЦенностямОстатки.Склад КАК Склад,
| НДСПоПриобретеннымЦенностямОстатки.КоличествоОстаток КАК Количество
| ИЗ
| РегистрНакопления.НДСПоПриобретеннымЦенностям.Остатки(&ДатаКон, Организация = &Организация) КАК НДСПоПриобретеннымЦенностямОстатки) КАК ВложенныйЗапрос
| ПО НДСПоПриобретеннымЦенностямОстатки.Организация = ВложенныйЗапрос.Организация
| И НДСПоПриобретеннымЦенностямОстатки.СчетУчета = ВложенныйЗапрос.СчетУчета
| И НДСПоПриобретеннымЦенностямОстатки.Номенклатура = ВложенныйЗапрос.Номенклатура
| И НДСПоПриобретеннымЦенностямОстатки.Склад = ВложенныйЗапрос.Склад
|ГДЕ
| ВложенныйЗапрос.Организация ЕСТЬ NULL ";
Показать
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот