Групповое изменение цены с пересчетом стоимости в документах реализации в 1С

Вопрос задал Людмила К. (Липецк)

Ответственный за ответ: Шаврова Ирина (★9.92/10)

Добрый день.
Используем «Бухгалтерия предприятия КОРП», редакция 3.0 (3.0.167.36).
Подскажите, пожалуйста, можно ли изменить цену в выставленных за период УПД с пересчетом стоимости?
Попробовала выделить группу в списке и заменить по меню «Изменение выделенных элементов». Цена меняется, но стоимость не пересчитывается, даже после перепроведения документов. Есть ли какой-то другой способ?

Метки вопроса: —

Все комментарии (3)

  1. Приложение № 1
    Приложение № 2
    Приложение № 3

    Здравствуйте!
    Изменить цену с пересчетом стоимости (и не только стоимости, но и НДС, и итоговой суммы документа в реквизите «СуммаДокумента») можно через написанную внешнюю обработку программистом или прощелкав вручную после установки новой цены в измененных документах поле «Цена».

    Через обработку группового изменения реквизитов вы в самом деле можете изменить только цену.
    Обработка заполняет в нужные колонки данные по выбранным документам, но при этом не выполняет арифметические действия пересчета новой цены на количество.
    А вам именно это и нужно.

    В самом документе прописан специальный код, который срабатывает при вводе ВРУЧНУЮ цены — это процедура ТоварыЦенаПриИзменении (см. скрин).
    Именно там и происходит программный расчет суммы, НДС, Всего.

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

    2
  2. Вернулась к Вашему вопросу. 🙂
    В обработке группового изменения есть возможность использовать произвольный алгоритм программиста.
    Справедливости ради, он не всегда работает там корректно (не все можно в него подтянуть для расчета), но в данном случае я все-таки попробовала — у меня прошло все хорошо.

    Вы можете в копии базы попробовать сначала. Если все понравится — выполнить в рабочей базе.

    Что делать:
    1. Раздел Администрирование — Обслуживание — Корректировка данных — Групповое изменение реквизитов.
    Выбор документа «Реализация (акты, накладные, УПД)».
    Подбираете те документы, в которых будете проводить пересчет цены и НДС (из-за изменения цены).
    На данный момент цена у вас уже изменена. Вам нужно привести в соответствие суммы на вкладках «Товары» или «услуги» или и то и другое вместе.

    2. Переходите на кн. Выполнить произвольный алгоритм и в поле кода вставляете ниже приведенный код:

    //Пересчет вкладки Товары для выбранных РТУ
    Для каждого сс из Объект.Товары Цикл
    сс.Сумма = сс.Количество *сс.Цена;
    Если сс.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС ИЛИ сс.СтавкаНДС = Перечисления.СтавкиНДС.НДС0 Тогда
    сс.СуммаНДС = 0;
    ИначеЕсли сс.СтавкаНДС = Перечисления.СтавкиНДС.НДС10 Тогда
    сс.СуммаНДС = ОКР(сс.Сумма * 0.1, 2);
    ИначеЕсли сс.СтавкаНДС = Перечисления.СтавкиНДС.НДС18 Тогда
    сс.СуммаНДС = ОКР(сс.Сумма * 0.18, 2);
    ИначеЕсли сс.СтавкаНДС = Перечисления.СтавкиНДС.НДС20 Тогда
    сс.СуммаНДС = ОКР(сс.Сумма * 0.2, 2);
    ИначеЕсли сс.СтавкаНДС = Перечисления.СтавкиНДС.НДС5 Тогда
    сс.СуммаНДС = ОКР(сс.Сумма * 0.05, 2);
    ИначеЕсли сс.СтавкаНДС = Перечисления.СтавкиНДС.НДС7 Тогда
    сс.СуммаНДС = ОКР(сс.Сумма * 0.07, 2);
    КонецЕсли;
    Если Объект.СуммаВключаетНДС Тогда
    сс.Сумма = сс.Сумма + сс.СуммаНДС;
    КонецЕсли;
    КонецЦикла;
    //Пересчет вкладки Услуги для выбранных РТУ
    Для каждого сс из Объект.Услуги Цикл
    сс.Сумма = ?(сс.Количество = 0, сс.Цена, сс.Количество *сс.Цена);
    Если сс.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС ИЛИ сс.СтавкаНДС = Перечисления.СтавкиНДС.НДС0 Тогда
    сс.СуммаНДС = 0;
    ИначеЕсли сс.СтавкаНДС = Перечисления.СтавкиНДС.НДС10 Тогда
    сс.СуммаНДС = ОКР(сс.Сумма * 0.1, 2);
    ИначеЕсли сс.СтавкаНДС = Перечисления.СтавкиНДС.НДС18 Тогда
    сс.СуммаНДС = ОКР(сс.Сумма * 0.18, 2);
    ИначеЕсли сс.СтавкаНДС = Перечисления.СтавкиНДС.НДС20 Тогда
    сс.СуммаНДС = ОКР(сс.Сумма * 0.2, 2);
    ИначеЕсли сс.СтавкаНДС = Перечисления.СтавкиНДС.НДС5 Тогда
    сс.СуммаНДС = ОКР(сс.Сумма * 0.05, 2);
    ИначеЕсли сс.СтавкаНДС = Перечисления.СтавкиНДС.НДС7 Тогда
    сс.СуммаНДС = ОКР(сс.Сумма * 0.07, 2);
    КонецЕсли;
    Если Объект.СуммаВключаетНДС Тогда
    сс.Сумма = сс.Сумма + сс.СуммаНДС;
    КонецЕсли;
    КонецЦикла;

    3. Теперь просто нажимаете кн. Выполнить и по этому алгоритму программа выполнит нужный пересчет.
    Я в тестовой базе проверила у себя, у меня расчет прошел корректно.
    Попробуйте на копии, возможно, тогда не нужно будет привлекать программиста или тратить время на ручные правки.

    2
  3. Приложение № 1
    Приложение № 2
    Приложение № 3
    Приложение № 4

    Прикладываю скрины из своей тестовой базы.

    1

Комментарии закрыты.