|
Копирование значений табличной части документа | ☑ | ||
---|---|---|---|---|
0
Aleksey1989
29.03.12
✎
10:45
|
Что-то не получается. Мне надо скопировать значения одной колонки табличной части в другую. Вот мой код:
ДокументОбъектЛаб = ЭтаФорма.ДокументУстановкиЦен.ПолучитьОбъект(); Мас = Новый массив(3000); i = 1; Для каждого ЭлементТаблЧасти из ДокументОбъектЛаб.Товары цикл Если ЭлементТаблЧасти.ВидЦены = ЭтаФорма.ВидыЦенИсточник тогда Мас[i] = ЭлементТаблЧасти.Цена; КонецЕсли; Если ЭлементТаблЧасти.ВидЦены = ЭтаФорма.ВидыЦенПриемник тогда ЭлементТаблЧасти.Цена = Мас[i]; КонецЕсли; i = i+1; КонецЦикла; ДокументОбъектЛаб.Записать(); Как я понял, то надо как-то настроить разрешения на запись в документ. |
|||
1
golden-pack
29.03.12
✎
10:47
|
(0) Это шутка ? Что за код
|
|||
2
Рэйв
29.03.12
✎
10:49
|
(0) Вряд ли программирование это твое. Позовите специалиста.
|
|||
3
Рэйв
29.03.12
✎
10:49
|
...А вроде 1989.
|
|||
4
szhukov
29.03.12
✎
10:51
|
(0)Бред какой-то.
Даже если предположить, что этот код должен работать, то что ты хочешь получить не понятно: пытаешься запомнить цену и потом записать туда же, а смысл? Как задача звучит? Перенести цену из одной табличной части в другую? Или это внути одной табличной части, но с разными колонками? |
|||
5
aspirant
29.03.12
✎
10:52
|
ЕслиТоИначеВсё
|
|||
6
szhukov
29.03.12
✎
10:52
|
+(4) Если между ТЧ, то по какому принципу перенос, номер строки совпадате или номенклатруа в строке ТЧ совпадает?
|
|||
7
Aleksey1989
29.03.12
✎
10:54
|
Не такой уж он и бред: для каждого вида цены устанавливается своя цена!
|
|||
8
Ненавижу 1С
гуру
29.03.12
✎
10:55
|
Мас = Новый массив(3000);
а почему 3000? а не 100500? |
|||
9
golden-pack
29.03.12
✎
10:56
|
(7) разрыв мозга твой код.
ЭтаФорма.ВидыЦенИсточник <> ЭтаФорма.ВидыЦенПриемник |
|||
10
szhukov
29.03.12
✎
10:57
|
(9) Разрыв мозга это вроде это:
Мас[i] = ЭлементТаблЧасти.Цена; ... ЭлементТаблЧасти.Цена = Мас[i]; :) |
|||
11
Aleksey1989
29.03.12
✎
10:57
|
Ссылка на форму документа: http://download73.files.mail.ru/18QBTP/4b42e5a977497e5bab555349712dd90c/фывафыва.png
|
|||
12
Aleksey1989
29.03.12
✎
10:58
|
(8) Потому что в документе приблизительно около 2000 ед номенклатуры, 3000 - написал просто так.
|
|||
13
szhukov
29.03.12
✎
11:08
|
Так ты хочешь все-таки поменять в объекте или на форме?
И что с чем менять собственно? |
|||
14
Aleksey1989
29.03.12
✎
11:20
|
В объекте. Не менять, а сделать так, как показано на скриншоте: цены омс д.б. равны ценам Платные. Этот скрин из демо-базы, в рабочей базе - Платные заполнены, а ОМС - нет. Вот и хочу написать внешнюю обработку.
|
|||
15
Aleksey1989
29.03.12
✎
11:37
|
Все, нашел свою ошибку: надо было использовать не массив, а переменную, ну или массив с небольшими доработками. Проблема заключалась в том, что получалось так, что я присваивал неопределенное значение, т.е. 1 итерация: в мас[1] = 530, видЦены = Платные, второе условие, естественно не выполняется, 2-я итерация - теперь уже видЦены = ОМС, НО! я Цене присваиваю мас[2], который неопределен.
П.с. не такой уж я и плохой программист, как оказалось :) |
|||
16
szhukov
29.03.12
✎
11:38
|
//УТ перед глазами нет, смысл думаю поймешь
//Нужно найти ту строку которую хочешь поменять // Док = ...ПолучитьОбъект(); //изменяемый документ ПараметрыОтбора = Новый Структура; Для каждого СтрокаТЧ из Док.Товары Цикл ПараметрыОтбора.Вставить("Номенклатура", СтрокаТЧ.Номенклатура); ПараметрыОтбора.Вставить("ТипЦен", ВидыЦенПриемник); СписокСтрок = Док.Товары.НайтиСтроки(ПараметрыОтбора); //И далее по найденным строкам меняем цены КонецЦикла |
|||
17
szhukov
29.03.12
✎
11:41
|
(15) в твоем коде этого не видно. Там не понятное что-то.
Почему-то мне кажется, что ты меняешь на форме, а не в объекте... :) |
|||
18
Reset
29.03.12
✎
11:47
|
(14)(15) "не плохой программист", копирование значений из одной колонки в другую делается так:
Товары.ЗагрузитьКолонку(ТЧ.ВыгрузитьКолонку("ИмяОткуда"),"ИмяКуда"); |
|||
19
Aleksey1989
29.03.12
✎
11:52
|
(18) Этот способ не годится, т.к. цены для платных и ОМС находятся в одной колонке!
|
|||
20
Reset
29.03.12
✎
11:56
|
(19) в (0) написано
"Мне надо скопировать значения одной колонки табличной части в другую" |
|||
21
Aleksey1989
29.03.12
✎
12:22
|
(20) Согласен, мой косяк, просто создавал тему, посмотрев только на форму в режиме 1С: Предприятие, что из себя представляет табличная часть даже не посмотрел.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |