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

Как правильно изменить цены номенклатуры?

Автор Doomych, 10 мар 2015, 18:18

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

Doomych

Платформа: 1С:Предприятие 8.3 (8.3.5.1383)
Конфигурация: Бухгалтерия предприятия, редакция 3.0 (3.0.38.51)
Работаю через OLE Automation (программа на Delphi)

Не получается корректно изменить цены номенклатуры.

Итак, моя программа передает в 1С акты о выполненных услугах.

В номенклатурной группе контрагента есть номенклатура (с ценой и датой). Есть документ "Установка цен номенклатуры" и запись в регистре сведений "ЦеныНоменклатуры" (есть так же документы "Счет на оплату покупателю", "Реализация товаров и услуг" и "Счет-фактура выданный на реализацию", но о них пока речь не идет).

На случай, если сумма по акту изменится, мне надо изменить значения цены в 1С. Хорошо. Вношу изменения в том же порядке, в каком я создавал документы: сначала меняю цену в "Установке цен номенклатуры", потом - в РС "ЦеныНоменклатуры". Цены-то меняются, но уже при проведении "Установки цен номенклатуры" в номенклатуре на изменяемую дату устанавливается "левый" документ от другого контрагента (цена пропадает), и та же ситуация - на текущую дату (только там другой "левый" документ).

Привожу упрощенный код изменения "Установки цен номенклатуры". Значения переменных ANomenklaturaGroup, price, products и product правильные (проверял):
searchStructure := Ole1C.NewObject('Структура');
searchStructure.Вставить('Номенклатура', ANomenklaturaGroup);
products := price.Товары.НайтиСтроки(searchStructure);
if products.Количество = 0 then
begin
  // Ругаемся
end;

product := products.Получить(0);
product.Цена := AActAmount;
price.Записать(Ole1C.РежимЗаписиДокумента.Проведение); // price - это документ "Установка цен номенклатуры"

Теги:

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

Рейтинг@Mail.ru

Поиск