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

Запись в РегистрНакопления по условия

Автор MANiac, 06 июн 2018, 12:50

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

MANiac

Уважаемые знатоки, помогите начинающему...
В типовых конфигурациях где и что прописать для того чтобы в регистр накопления ничего не записалось в определенном случае?

pavl_vs

В обработке проведения так и пишите
Если ОпределенныйСлучай Тогда НеЗаписывать КонецЕсли;

MANiac

Цитата: pavl_vs от 06 июн 2018, 13:07
В обработке проведения так и пишите
Если ОпределенныйСлучай Тогда НеЗаписывать КонецЕсли;
Ответ ни о чем... Если б так просто было - не спрашивал

AIFrame

Цитата: MANiac от 06 июн 2018, 14:12Ответ ни о чем... Если б так просто было - не спрашивал
Ты не поверишь, но все именно так просто.
Например:
Процедура ОбработкаПроведения(Отказ, Режим)
СсылкаНового = ?(ЭтоНовый(), ЭтотОбъект.ПолучитьСсылкуНового(), Ссылка);

//МоментВремени = ТекущаяДата();
//Если ЗначениеЗаполнено(Дата) И Режим <> РежимПроведенияДокумента.Оперативный Тогда
// МоментВремени = Дата;
//КонецЕсли;

//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

// регистр Товары Приход
Если НЕ Виртуальный Тогда
Движения.ТоварыРБ.Записывать = Истина;
Движения.ТоварыРБ.Очистить();
Для Каждого ТекСтрокаТовары Из Товары Цикл
Движение = Движения.ТоварыРБ.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Номенклатура = ТекСтрокаТовары.Номенклатура;
Движение.ЕдиницаИзмерения = ТекСтрокаТовары.ЕдиницаИзмерения;
Движение.Организация = Организация;
Движение.Контрагент = Контрагент;
Движение.ДоговорКонтрагента = ДоговорКонтрагента;
Движение.Менеджер = Менеджер;
Движение.Склад = Склад;
Движение.Количество = ТекСтрокаТовары.Количество;
// Партия
Движение.ДокументПартии = СсылкаНового;
Движение.НетДокументов = ТекСтрокаТовары.НетДокументов;
Движение.КлючСвязи = ТекСтрокаТовары.КлючСвязи;
// Реквизиты
Движение.АктРазбраковки = ТекСтрокаТовары.Основание;
Движение.ЗаявленнаяНеисправность = ТекСтрокаТовары.ЗаявленнаяНеисправность;
КонецЦикла;
ИначеЕсли ЗначениеЗаполнено(ЭтотОбъект.Ссылка) Тогда
ОбщийМодуль_РБ.УдалитьЗаписиРБПоРегистратору(ЭтотОбъект.Ссылка);
КонецЕсли;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры


MANiac

В типовых же не так линейно...
Все распихано по разным модулям и процедурам

AIFrame

MANiac,
И что от этого меняется?
И не распихано, а процедуры движений выполняются более универсально с использованием общих модулей и экспортных процедур в модуле набора записей регистра накоплений. А делают все то же самое.
Тебя в отладчике забанили или F10 на клавиатуре сломалось?

pavl_vs

Цитата: MANiac от 06 июн 2018, 14:12
Ответ ни о чем... Если б так просто было - не спрашивал
Каков вопрос, таков и ответ.

Цитата: MANiac от 06 июн 2018, 14:27
В типовых же не так линейно...
Все распихано по разным модулям и процедурам
Действительно не так линейно - в типовых, но разных конфигурациях, "все распихано по разным модулям и процедурам", не совпадающим как по составу и количеству, так и по названиям, т.е. процесс в разной степени детализован.
И как прикажете Вам отвечать?

wise

(4) в типовых... не ОЧЕНЬ старых... в модуле менеджера документа ЕСТЬ процедура "ИнициализироватьДанныеДокумента" в которой собираются данные для записи в регистры...
измените запросы сбора данных ...
хотя...
ПОСЛЕ сбора данных в модуле документа в процедуре ОбработкаПроведения ЭТИ данные записываются ОЧЕВИДНЫМ образом
например регистр "ТоварыНаСкладах":  ЗапасыСервер.ОтразитьТоварыНаСкладах(ДополнительныеСвойства, Движения, Отказ);

так что можешь сделать запись через условие:
Если ХочуЗаписатьРегистрТоварыНаСкладах Тогда
    ЗапасыСервер.ОтразитьТоварыНаСкладах(ДополнительныеСвойства, Движения, Отказ);
КонецЕсли;
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

MANiac

Цитата: wise от 06 июн 2018, 15:25
(4) в типовых... не ОЧЕНЬ старых... в модуле менеджера документа ЕСТЬ процедура "ИнициализироватьДанныеДокумента" в которой собираются данные для записи в регистры...
измените запросы сбора данных ...
хотя...
ПОСЛЕ сбора данных в модуле документа в процедуре ОбработкаПроведения ЭТИ данные записываются ОЧЕВИДНЫМ образом
например регистр "ТоварыНаСкладах":  ЗапасыСервер.ОтразитьТоварыНаСкладах(ДополнительныеСвойства, Движения, Отказ);

так что можешь сделать запись через условие:
Если ХочуЗаписатьРегистрТоварыНаСкладах Тогда
    ЗапасыСервер.ОтразитьТоварыНаСкладах(ДополнительныеСвойства, Движения, Отказ);
КонецЕсли;


Так и сделал.
Спасибо

Теги:

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

Рейтинг@Mail.ru

Поиск