|   |   | 
| 
 | Пересчет суммы, ндс и тд. в Документе ПриобретениеТоваровУслуг УТ 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 | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |