|
Пересчет суммы, ндс и тд. в Документе ПриобретениеТоваровУслуг УТ 11 | ☑ | ||
---|---|---|---|---|
0
shhh2000
26.01.23
✎
09:45
|
Подскажите новичку)
Сделала внешнюю обработку, которая отбирает документы по условию и изменяет в них цену. Как сделать так, чтобы сумма, ндс, сумма с ндс при этом пересчитывались? При этом успользуя типовой механизм |
|||
1
Ryzeman
26.01.23
✎
09:56
|
ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения)
Посмотри на самой форме как в обработчиках ТЧ это делается, сделай так же. Только там вызывается клиентский модуль, но процедуры работают одинаково, вроде |
|||
2
shhh2000
26.01.23
✎
10:12
|
я это код в типовой нашла
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные; СтруктураПересчетаСуммы = ОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект); СтруктураДействий = Новый Структура; СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы); СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы); СтруктураДействий.Вставить("ПересчитатьСумму"); СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь)); СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов"); СтруктураДействий.Вставить("ЗаполнитьДубликатыЗависимыхРеквизитов", ЗависимыеРеквизиты()); СтруктураДействий.Вставить("ПересчитатьСуммуСверхЗаказа", Новый Структура("РеализацияПоступлениеПоЗаказу, ТребуетсяЗалогЗаТару", Объект.ПоступлениеПоЗаказам, Объект.ТребуетсяЗалогЗаТару)); ОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения); ОбновитьОтклоненияОтЗаказаВСтроке(ТекущаяСтрока, Объект.ПоступлениеПоЗаказам, Объект.ТребуетсяЗалогЗаТару); РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма); я не понимаю, как его совместить с моим вот моя процедура, которая записывает документ &НаСервере Процедура КнопкаВыполнитьНаСервере() Для Каждого СтрокаТЧ Из ДокументыПоступления Цикл Если СтрокаТЧ.Отметка = Ложь Тогда Продолжить; КонецЕсли; Док = СтрокаТЧ.Документ.ПолучитьОбъект(); Для Каждого СтрокаДок Из Док.Товары Цикл СтрокаДок.Цена = СтрокаДок.Цена * 1.5; КонецЦикла; Док.Записать(РежимЗаписиДокумента.Проведение); КонецЦикла; КонецПроцедуры |
|||
3
Ryzeman
26.01.23
✎
10:14
|
(2) я тебе буквально дал модуль и название процедуры в (1). Ты сама нашла какую структуру надо вставить во второй параметр. В чём сложность?
|
|||
4
shhh2000
26.01.23
✎
10:18
|
Типовой код выполняется на клиенте, а мой на сервере, как их совместить?
простите за тупые вопросы, совсем зеленая еще, не понимаю как это работает |
|||
5
Мультук
гуру
26.01.23
✎
10:19
|
(4)
Например вот так. Тебе ведь (1) намекнул &НаКлиентеНаСервереБезКонтекста Функция ЗависимыеРеквизиты() Возврат Новый Структура( "БезВозвратнойТары", "Сумма,СуммаНДС,СуммаСНДС,СуммаРучнойСкидки"); КонецФункции &НаСервере Процедура КнопкаВыполнитьНаСервере() Для Каждого СтрокаТЧ Из ДокументыПоступления Цикл Если СтрокаТЧ.Отметка = Ложь Тогда Продолжить; КонецЕсли; Док = СтрокаТЧ.Документ.ПолучитьОбъект(); //mista СтруктураПересчетаСуммы = ОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Док); СтруктураДействий = Новый Структура; СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы); СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы); СтруктураДействий.Вставить("ПересчитатьСумму"); СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь)); СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов"); СтруктураДействий.Вставить("ЗаполнитьДубликатыЗависимыхРеквизитов", ЗависимыеРеквизиты()); СтруктураДействий.Вставить("ПересчитатьСуммуСверхЗаказа", Новый Структура("РеализацияПоступлениеПоЗаказу, ТребуетсяЗалогЗаТару", Док.ПоступлениеПоЗаказам, Док.ТребуетсяЗалогЗаТару)); Для Каждого СтрокаДок Из Док.Товары Цикл СтрокаДок.Цена = СтрокаДок.Цена * 1.5; //mista ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, Неопределено); КонецЦикла; Док.Записать(РежимЗаписиДокумента.Проведение); КонецЦикла; КонецПроцедуры |
|||
6
shhh2000
26.01.23
✎
10:36
|
спасибо большое добрые люди, что помогаете новичкам))
|
|||
7
shhh2000
26.01.23
✎
10:42
|
а может подскажете еще, в моей обработке документы отбираются по значению реквизита на форме (по контрагенту, по номенклатуре и тд).
Как сделать возможность выбирать не одну номенклатуру, а несколько? |
|||
8
Мультук
гуру
26.01.23
✎
10:43
|
(6)
Я конечно не модератор, но вы пишите "сделала", а пол в профиле установлен как "Мужской". Здесь весьма негативно относятся к мальчикам, которые выдают себя за девочек. P.S. Постарайтесь больше времени уделять изучению типового кода. Он не всегда идеален, но для вас сейчас -- просто эталон "как надо писать" |
|||
9
Dmitry1c
26.01.23
✎
10:43
|
(7) гугли, эти вопросы обсосаны мильен раз
|
|||
10
shhh2000
26.01.23
✎
10:52
|
Нет, я девочка, просто быстро зарегалась и не обратила внимание
я не могу ничего найти, может гуглю неправильно, как вообще это называется |
|||
11
Мультук
гуру
26.01.23
✎
11:21
|
(7)
Нужно тип реквизита поменять на СписокЗначений или ТаблицуЗначений В запросе вместо "т1.Номенклатура = &Номенклатура" писать "т1.Номенклатура в (&Номенклатура)" или "т1.Номенклатура в иерархии (&Номенклатура)" Если то что я написал непонятно, то нужно вспоминать слова Ленина В.И. и наверное курсы/книги. Книги: гуглить Хрусталева Радченко Курсы: мне нравятся вот эти ребята https://курсы-по-1с.рф/ У них есть раздел free |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |