|
Обработка для корректировки копейки | ☑ | ||
---|---|---|---|---|
0
mila1231
20.07.17
✎
07:58
|
День добрый
Есть ут 11,2,300, В заказе клиента необходимо корректировать копейку, вправо влево. Для начала делаю так т.е обработкой вытаскиваю данные из табличного поля нужного документа &НаКлиенте Процедура Заполнить() Заполнить2(); Сообщить ("Заполнено"); КонецПроцедуры &НаСервере Процедура Заполнить2() ДокОбъект = РеквизитФормыВЗначение("Объект"); Запрос = Новый Запрос; Запрос.Текст = Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗаказКлиентаТовары.Номенклатура, | ЗаказКлиентаТовары.Сумма, | ЗаказКлиентаТовары.СтавкаНДС, | ЗаказКлиентаТовары.СуммаНДС, | ЗаказКлиентаТовары.СуммаСНДС, | ЗаказКлиентаТовары.Ссылка.Ссылка |ИЗ | Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары |ГДЕ | ЗаказКлиентаТовары.Ссылка = &ссылка"; Запрос.УстановитьПараметр("ссылка", Объект.Документ); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл Строка = Объект.Товары.Добавить(); Строка.Номенклатура = выборка.Номенклатура; Строка.Сумма = выборка.Сумма; Строка.СуммаНДС = выборка.СуммаНДС; Строка.СуммаСНДС = выборка.СуммаСНДС; КонецЦикла; КонецПроцедуры Получаю табличную часть Товары А дальше нужна помощь, как записать уже изменённые данный в документ? ЗЫ заранее спс, пыталась изложить кратко и понятно. |
|||
1
1dvd
20.07.17
✎
08:12
|
путаешься. То Объект, то ДокОбъект...
в конце напиши ДокОбъект.Записать( |
|||
2
Рэйв
20.07.17
✎
08:39
|
(0)зачем тебе РеквизитФормыВЗначение?
Работай сразу напрямую с Объект. |
|||
3
Рэйв
20.07.17
✎
08:39
|
у тебя же на сервере с контекстом
|
|||
4
mila1231
20.07.17
✎
09:43
|
Согласна, путаюсь..... закомментирована должна была быть строка, вернее её быть не должно(.(ДокОбъект = РеквизитФормыВЗначение("Объект");)
Документ-это реквизит обработки...т.е я выбираю нужный мне документ и запросом считываю нужные позиции. Считать считала, т.е получила те строки, что мне нужны. Дальше я хочу эти же строки записать в тот документ который выбрала. Т.е по сути я создаю ещё одно событие(Кнопку) и там уже должна обратиться как к объекту к этому документу так? |
|||
5
1dvd
20.07.17
✎
09:56
|
(4) а почему бы сразу не записывать в документ?
|
|||
6
mila1231
20.07.17
✎
10:03
|
сначала нужно считать те данные которые заполнены, чтоб потом изменить только или сумму, или суммусНДС, а потом уже записать.
|
|||
7
h-sp
20.07.17
✎
10:17
|
(6) надо наверно
ДокОбъект = Объект.Документ.ПолучитьОбъект(); потом изменяете что-то и ДокОбъект.Записать(); а Объект - это обработка. Это не заказ клиента. |
|||
8
mila1231
20.07.17
✎
10:36
|
(7) мне же получается нужно обратиться к табличной части нужного мне документа, а документОбъект-это же по сути является просто ссылка , нет не так?
|
|||
9
mila1231
20.07.17
✎
10:45
|
До этого вроде дошла...
счас ругается на то, что не понимает строку с суммой, которая в обработке...товары.сумма; ДокОбъект = Объект.НужныйДокумент.ПолучитьОбъект(); Для каждого стр из ДокОбъект.Товары цикл стр.Сумма = товары.сумма; //сообщить(стр.Сумма); конецЦикла; ДокОбъект.Записать(РежимЗаписиДокумента.Проведение); |
|||
10
1dvd
20.07.17
✎
10:46
|
(9) я бы то ругнулся, но с матами
|
|||
11
mila1231
20.07.17
✎
10:47
|
(10) Вообще я думала Объект.Товары.Сумма, но всё равно не верно, поэтому вопрос как, ругайте.... правда, можно, ну и нужно... но как надо то?
|
|||
12
mila1231
20.07.17
✎
11:04
|
Частично сообразила
вторый цикл нужен... т.е получается на данный момент так, но с ошибкой ДокОбъект = Объект.НужныйДокумент.ПолучитьОбъект(); Для каждого стр из ДокОбъект.Товары цикл Индекс=0; Для Каждого ТекущаяСтрока из Объект.Товары Цикл Индекс=Индекс+1 ; ТекущаяСтрока.Колонка[Индекс]; стр.сумма = ТекущаяСтрока[Колонка.Сумма]; //сообщить(стр.Сумма); конецЦикла; конецЦикла; ДокОбъект.Записать(РежимЗаписиДокумента.Проведение); |
|||
13
mila1231
20.07.17
✎
11:05
|
ошибка вот в этой строке ТекущаяСтрока.Колонка[Индекс];
|
|||
14
h-sp
20.07.17
✎
11:07
|
Для Каждого ТекущаяСтрока из Объект.Товары Цикл
стр.сумма = ТекущаяСтрока.Сумма; |
|||
15
catena
20.07.17
✎
11:14
|
Вот попа-то будет, если порядок строк поменяют.
|
|||
16
mila1231
20.07.17
✎
11:17
|
(14)
если так сделать, тогда всем строкам присваивается значение последней строки т.е сумма1 строка 1 2 строка 2 3 при записи и первая и вторая строки принимают значение 3. |
|||
17
catena
20.07.17
✎
11:22
|
(16)Ну очевидно же, что нужно условие на соответствие строк. Ключ связи какой-нибудь. Либо брать всю тч и загружать потом так же во всю тч.
|
|||
18
mila1231
20.07.17
✎
11:26
|
(17) Спасибо по условию сообразила...работает
а если не сложно, грубо если всю табличную часть загружать это как? |
|||
19
mila1231
20.07.17
✎
11:26
|
(15) и заодно про порядок строк, в чём попа.. кто поменяет?
|
|||
20
catena
20.07.17
✎
11:33
|
(18)Табличная часть (Tabular section)
Загрузить (Load) Синтаксис: Загрузить(<Таблица>) (19)Если связка надежная, то ни в чем. |
|||
21
mila1231
21.07.17
✎
06:05
|
Еще один вопрос, немогу понять причину, обработка работает только от первого пользователя, т.е если я сижу в тестовой базе одна, то обработка работает, захожу в реальную базу, где несколько человек, обработка не работает, в чём соль?
|
|||
22
1dvd
21.07.17
✎
06:10
|
(21) не работает - понятие растяжимое
|
|||
23
mila1231
21.07.17
✎
06:12
|
(22) не меняет значение, если надо могу код приложить, того как счас, но он не слишком изменился из того, что было.
|
|||
24
mila1231
21.07.17
✎
07:41
|
(23) вопрос снят, не знаю насколько в этом деле, обработка, которую подгружала находилась у меня на рабочем столе, засунула в папку с базой всё работает.Всем спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |