Имя: Пароль:
1C
1С v8
Чтобы движения документа по РС не дублировались в пределах периода
0 21stas
 
04.03.13
13:41
Регистрирую цены номенклатуры:

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

Если они в один день та же номенклатура поступала, даёт ошибку. Как сделать, чтобы новое движение просто заменяло старое без выдачи ошибки?
1 Wobland
 
04.03.13
13:42
а зачем тебе триста раз делать поиск по коду и константы.получить?
2 scanduta
 
04.03.13
13:44
Установи отбор по измерениям, очисти при необходимости, Запиши новые значения
3 Галахад
 
гуру
04.03.13
13:45
Не майся фигней, установи периодичность в пределах секунды.
4 ptiz
 
04.03.13
13:48
(0) Делай регистр независимым
5 ptiz
 
04.03.13
13:48
Правда, при отмене проведения цена останется.
6 21stas
 
04.03.13
14:29
(1) Согласен, халява.
(2,3,4) Варианты понял. Спасибо.
7 21stas
 
04.03.13
14:43
Сделал в итоге проверку. Топорно, медленно, но пойдёт:
       ВыборкаЦенПоНоменклатуре=РегистрыСведений.ЦеныНоменклатуры.Выбрать(НачалоДня(Дата),КонецДня(Дата),Новый Структура("Номенклатура",СтрокаТовары.Номенклатура));
       Если НЕ ВыборкаЦенПоНоменклатуре.Следующий() Тогда
2 + 2 = 3.9999999999999999999999999999999...