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

Изменение строк в регистре сведений

Автор Серёжа Сухинин, 23 апр 2018, 10:44

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

Серёжа Сухинин

Доброго времени суток!задача состоит в следующем необходимо при проведение документа "ЗаказКомплектующих" добавлять данные в РегистрыСведений.ОстатокНаСкладе.
выполняю такие действия

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)

СтрокаТабличнойЧасти =Элементы.Материалы.ТекущиеДанные;

ВызватьСервер(СтрокаТабличнойЧасти.Материалы,СтрокаТабличнойЧасти.Количество)
КонецПроцедуры

&НаСервере
Функция ВызватьСервер(Материалы,Количество)

Запрос = Новый Запрос;
Запрос.Текст =" ВЫБРАТЬ * ИЗ РегистрСведений.ОстатокнаСкладе ";
РезультатЗапроса = Запрос.Выполнить();

    Записи = РезультатЗапроса.Выбрать();
Пока Записи.Следующий() Цикл
если Записи.Номенклатура = Материалы Тогда
НаборЗаписей = РегистрыСведений.ОстатокнаСкладе.СоздатьНаборЗаписей();
перемм = Записи.ОстатокНаСкладе;
НовЗапись = НаборЗаписей.Добавить();
НаборЗаписей.Отбор.Период.Установить(ТекущаяДата());
НовЗапись.Период = ТекущаяДата();
НовЗапись.Номенклатура = Материалы;
НовЗапись.ОстатокНаСкладе =Записи.ОстатокНаСкладе+Количество;
НаборЗаписей.Записать(Истина);
иначе
НаборЗаписей = РегистрыСведений.ОстатокнаСкладе.СоздатьНаборЗаписей();
НовЗапись = НаборЗаписей.Добавить();
НаборЗаписей.Отбор.Период.Установить(ТекущаяДата());
НовЗапись.Период = ТекущаяДата();
НовЗапись.Номенклатура = Материалы;
НовЗапись.ОстатокНаСкладе = Количество;
НаборЗаписей.Записать(Истина);
КонецЕсли;


КонецЦикла;

НаборЗаписей = РегистрыСведений.ОстатокнаСкладе.СоздатьНаборЗаписей();
НовЗапись = НаборЗаписей.Добавить();
НаборЗаписей.Отбор.Период.Установить(ТекущаяДата());
НовЗапись.Период = ТекущаяДата();
НовЗапись.Номенклатура = Материалы;
НовЗапись.ОстатокНаСкладе = Количество;
НаборЗаписей.Записать(Истина);





КонецФункции

1.Провожу первый документ с номенклатурой "Барабан тормозной ЧМЗАП".



2.К примеру появилась еще потребность провести еще один документ с номенклатурой "Барабан тормозной ЧМЗАП".

Но второе проведение не совсем корректное,точнее необходимо что-бы в Регистре Сведений происходило суммирование по полю ОстатокНаСкладе,в целом то оно производиться,но при этом остается старая запись и добовляется новая

Как исправить что-бы не добовлялись два лишних поля?
Спасибо!

alex0402

Цитата: Серёжа Сухинин от 23 апр 2018, 10:44НаборЗаписей.Отбор.Период.Установить(ТекущаяДата());

Цитата: Серёжа Сухинин от 23 апр 2018, 10:44НаборЗаписей.Записать(Истина);

Перезапишет все записи, где период = ТекущаяДата(),

Кроме того
Цитата: Серёжа Сухинин от 23 апр 2018, 10:44НаборЗаписей.Отбор.Период.Установить(ТекущаяДата()); НовЗапись.Период = ТекущаяДата();

Цитата: Серёжа Сухинин от 23 апр 2018, 10:44НаборЗаписей.Отбор.Период.Установить(ТекущаяДата()); НовЗапись.Период = ТекущаяДата();

не всегда одна и та же дата.
Цитата: Серёжа Сухинин от 23 апр 2018, 10:44Как исправить что-бы не добовлялись два лишних поля?

наверное две лишних записи?

тогда прочитать набор записей, изменить набор и за тем записать.

и напоследок:

Остатки обычно хранятся в регистрах накопления.
Спасибо за Сказать спасибо

KOI8-R

Цитата: alex0402 от 23 апр 2018, 12:13
и напоследок:

Остатки обычно хранятся в регистрах накопления.
Вот с "напоследка" лучше как раз и начать! :D

Серёжа Сухинин

Цитата: KOI8-R от 23 апр 2018, 15:03
Цитата: alex0402 от 23 апр 2018, 12:13
и напоследок:

Остатки обычно хранятся в регистрах накопления.
Вот с "напоследка" лучше как раз и начать! :D
Хорошо,я суть то понимаю,у меня присутствует РегистрНакопления.ОстаткиМатериалов, но мне необходимо при выборе поля номенклатура в ТЧ документа сообщить пользователю количесто остатков,а как к нему обратиться я не понимаю

alexandr_ll

Цитата: Серёжа Сухинин от 23 апр 2018, 18:08
Цитата: KOI8-R от 23 апр 2018, 15:03
Цитата: alex0402 от 23 апр 2018, 12:13
и напоследок:

Остатки обычно хранятся в регистрах накопления.
Вот с "напоследка" лучше как раз и начать! :D
Хорошо,я суть то понимаю,у меня присутствует РегистрНакопления.ОстаткиМатериалов, но мне необходимо при выборе поля номенклатура в ТЧ документа сообщить пользователю количесто остатков,а как к нему обратиться я не понимаю
http://helpme1c.ru/registry-nakopleniya-v-yazyke-1s-8-v-primerax

Теги:  8.3 

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

Рейтинг@Mail.ru

Поиск