Периодические регистры сведений. Корректность кода
Здравствуйте!
Помогите пожалуйста решить проблему.
У меня есть задание:
1. Добавьте документ для установки цен номенклатуры в разных магазинах сети. (УстановкаЦенМагазина)
2. Создайте регистр сведений для хранения цены номенклатуры (ЦеныТоваров: Измерения: Товар, Магазин. Ресурсы: Цена. Режим записи регистра: Подчинённый регистратору (а именно УстановкаЦенМагазина))
3. Создайте движение документа по новому регистру
4. Добавьте в документ «Продажа» автоматическую установку актуальной цены при выборе товара. Обратите внимание, что цена может поменяться не только в случае смены товара, но и при смене магазина.
Я практически смог это сделать, но я застрял на моменте, где нужно сделать так, чтобы при изменении магазина менялась вся таблица, а не одна строка. Я ещё не совсем понимаю код 1С, и поэтому прошу вас оказать помощь. Я полагаю, что нужно добавить цикл в Процедура МагазинПриИзменении(Элемент) (документа Продажа), но у меня постоянно ошибки. Помогите пожалуйста.
С уважением, Павел!
Помогите пожалуйста решить проблему.
У меня есть задание:
1. Добавьте документ для установки цен номенклатуры в разных магазинах сети. (УстановкаЦенМагазина)
2. Создайте регистр сведений для хранения цены номенклатуры (ЦеныТоваров: Измерения: Товар, Магазин. Ресурсы: Цена. Режим записи регистра: Подчинённый регистратору (а именно УстановкаЦенМагазина))
3. Создайте движение документа по новому регистру
4. Добавьте в документ «Продажа» автоматическую установку актуальной цены при выборе товара. Обратите внимание, что цена может поменяться не только в случае смены товара, но и при смене магазина.
Я практически смог это сделать, но я застрял на моменте, где нужно сделать так, чтобы при изменении магазина менялась вся таблица, а не одна строка. Я ещё не совсем понимаю код 1С, и поэтому прошу вас оказать помощь. Я полагаю, что нужно добавить цикл в Процедура МагазинПриИзменении(Элемент) (документа Продажа), но у меня постоянно ошибки. Помогите пожалуйста.
С уважением, Павел!
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Сделайте подобно следующему примеру. В процедуре МагазинПриИзмененииНаСервере() добавьте переменную (НовыйМагазин) получающую значение Объект.Магазин и поменяйте текст запроса на выборку из вашего РегистрСведений.ЦеныТоваров с условием проверки НовыйМагазин, а также товаров из списка.
&НаСервере
Процедура МагазинПриИзмененииНаСервере()
СписокТоваров = Новый СписокЗначений;
Для каждого элм из Объект.Товары цикл
СписокТоваров.Добавить(элм.Товар);
КонецЦикла;
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Товары.Ссылка КАК Товар
|ИЗ
| Справочник.Товары КАК Товары
|ГДЕ
| Товары.Ссылка В(&СписокТоваров)
| И НЕ Товары.ПометкаУдаления";
Запрос.УстановитьПараметр("СписокТоваров", СписокТоваров);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
НовСтр = Объект.Товары.Добавить();
ЗаполнитьЗначенияСвойств(НовСтр, Выборка);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура МагазинПриИзменении(Элемент)
МагазинПриИзмененииНаСервере();
КонецПроцедуры
Показать
(10) Сначала ты расскажи, что он делает? Ты ж его написал.
Интересно просто. А то расскажу я, что он нихрена не делает, кроме
а) бесполезного вызова сервера с клиента
б) бесполезного обращения к СУБД
в) очень полезного задвоения строк в форме документа
Интересно просто. А то расскажу я, что он нихрена не делает, кроме
а) бесполезного вызова сервера с клиента
б) бесполезного обращения к СУБД
в) очень полезного задвоения строк в форме документа
(11) Во первых, этот код написан совершенно не для тебя, а для топикастера. Во вторых, это пример, а не готовое решение и никто не запрещает топикастеру очищать табличную часть перед выводом новых строк. Ну и в третьих, мне что-то вообще не видно каких то осмысленных твоих предложений.
&НаКлиенте
Процедура МагазинПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.Товары.ТекущиеДанные;
Для Каждого СтрокаТабличнойЧасти Из Элементы.Товары Цикл
СтрокаТабличнойЧасти.Цена = РаботаСоСправочниками.РозничнаяЦена(Объект.Дата, СтрокаТабличнойЧасти.Товар, Объект.Магазин);
РасчётСтоимости.РассчитатьСтоимость(СтрокаТабличнойЧасти);
КонецЦикла:
КонецПроцедуры
Добавлял в различные места данный цикл, но пишет что.........
Итератор для значения не определен
{Документ.Продажа.Форма.ФормаДокумента.Форма(27)}:Для Каждого СтрокаТабличнойЧасти Из Элементы.Товары Цикл
[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот