|
Обращение к табличной части РеализацииТоваров и Услуг | ☑ | ||
---|---|---|---|---|
0
sirbure
24.12.14
✎
16:32
|
Добрый день! Не могу понять как изменить субконто в табличной части док-та Реализация товаров и услуг. Про Групповую обработку знаю, но хочу сам). Задумка какая: получаю по ссылке нужный документ, короче часть кода:
Ссылка=СтрокаТаблицы.Ссылка;
Соответственно не работает, что не так? |
|||
1
lxndr
24.12.14
✎
16:33
|
как бы тебя помягче оскорбить...
|
|||
2
shuhard
24.12.14
✎
16:34
|
(1) при 3-х ошибках в 6 строчках кода мягко не выйдет
|
|||
3
Михаил Козлов
24.12.14
✎
16:35
|
Наверное, СтрокаТаблицы.Субконто = (если есть такой реквизит ТЧ).
В цикле искать по наименованию не обязательно: можно перед циклом. |
|||
4
SerF_2011
24.12.14
✎
16:35
|
каждый когда то писал что то подобное) и не спорьте.
|
|||
5
lxndr
24.12.14
✎
16:36
|
> Из "Товары" Цикл
Это откуда? |
|||
6
lxndr
24.12.14
✎
16:36
|
> Субконто = ...
Это куда? |
|||
7
Лефмихалыч
24.12.14
✎
16:36
|
(0) не так решительно всё
|
|||
8
lxndr
24.12.14
✎
16:37
|
> Ссылка = ....Ссылка
Это зачем? |
|||
9
anatoly
24.12.14
✎
16:38
|
суровый код...
|
|||
10
salvator
24.12.14
✎
16:38
|
Начало нормально. Дальше как-то не очень...
|
|||
11
Лефмихалыч
24.12.14
✎
16:39
|
РеализацияОбъект = СтрокаТаблицы.Ссылка.ПолучитьОбъект();
ОсновнаяГруппа = Справочники.НоменклатурныеГруппы.НайтиПоНаименованию("Основная номенклатурная группа"); Для каждого ТоварыСтрока из РеализацияОбъект.Товары Цикл ТОварыСтрока.Субконто = ОсновнаяГруппа; // но это только в том случае, если Субконто - это реквизит табличной части и у него тип Справочник.НоменклатурныеГруппы КонецЦикла; РеализацияОбъект.Записать(); // вот тут возможно еще и провести стоит? |
|||
12
sirbure
24.12.14
✎
16:40
|
(8) Получаю ссылку на Объект из другой таблицы, не важно)
|
|||
13
Chameleon1980
24.12.14
✎
16:44
|
Ладно тс хоть про получитьОбъект догадался или заранее кто подсказал.
|
|||
14
sirbure
24.12.14
✎
16:46
|
(11) Думал об этом, сейчас проверю) (13) кое-что понимаю))
Не совсем понимаю как работать с полученным объектом) Изучаю научным тыком) |
|||
15
Chameleon1980
24.12.14
✎
16:55
|
(14) просто нередко пытаются работать со ссылкой, как с объектом. Против то ничего не имею.
|
|||
16
sirbure
24.12.14
✎
16:56
|
(11) Не работает(
|
|||
17
Chameleon1980
24.12.14
✎
16:57
|
(16) комментарии в примере читайте
|
|||
18
salvator
24.12.14
✎
16:59
|
(16) Хоть текст ошибки что-ли выложил... Не работает у него...
|
|||
19
sirbure
24.12.14
✎
17:00
|
(17) Дык так оно и есть!
|
|||
20
sirbure
24.12.14
✎
17:00
|
(18) Ошибки нет, не изменяется номенклатурная группа.
|
|||
21
salvator
24.12.14
✎
17:03
|
(20) Заполни субконто с помощью групповой обработки справочников и документов и не мучайся.
|
|||
22
1976vas
24.12.14
✎
17:04
|
(21) Или посмотри как она заполняет
|
|||
23
salvator
24.12.14
✎
17:07
|
+(21) Скорее всего у тебя реквизит "Субконто" имеет тип, отличный от СправочникСсылка.НоменклатурныеГруппы.
Посмотри какой счет доходов стоит, и есть ли у него этот вид субконто. Если не ошибаюсь, от него зависит. |
|||
24
sirbure
24.12.14
✎
17:07
|
(21) Блин, да в курсе я, про неё, я хочу вот так) Я понимаю как изменить реквизиты док-та, а как изменить значения в таблице не понимаю) как я понимаю если бы я это делал не в цикле, а для отдельной строки например 2, то код был бы примерно таким:
ЭтотОбъект.Товары[2].Субконто="Основная номенклатурная Группа" да? |
|||
25
Chameleon1980
24.12.14
✎
17:08
|
типы совпадают?
|
|||
26
Chameleon1980
24.12.14
✎
17:09
|
(24) тока не строке оно скорее всего равно
|
|||
27
Chameleon1980
24.12.14
✎
17:10
|
ну и отладчик в руки уже
|
|||
28
Михаил Козлов
24.12.14
✎
17:11
|
(24) Нет. Субконто вряд ли может быть строкой.
Посмотрите в отладчике значение субконто в строке после присвоения. Если пусто - типы не совпадают. Если нормально, значит объект не записали. |
|||
29
floody
24.12.14
✎
17:13
|
(26) (28) Блин, да в курсе он, но хочет вот так)
|
|||
30
Chameleon1980
24.12.14
✎
17:16
|
(29) :) не уверен
|
|||
31
sirbure
24.12.14
✎
17:18
|
(25) да, Типы совпадают, стандартная конфа.
|
|||
32
Chameleon1980
24.12.14
✎
17:22
|
а какая стандартная говорили чтоль?
|
|||
33
Chameleon1980
24.12.14
✎
17:23
|
(31) как узнал, что типы совпадают?
|
|||
34
GreatOne
24.12.14
✎
17:25
|
||||
35
GreatOne
24.12.14
✎
17:25
|
(33) стандартная конфа же=)
|
|||
36
sirbure
24.12.14
✎
17:28
|
(32) Блин, посмотрел в конфигураторе на тип оказалось вот что
Характеристика.ВидыСубконтоХозрасчетные Но в конфе выбирается из справочника Номенклатурныегруппы |
|||
37
salvator
24.12.14
✎
17:31
|
(36) В цикле добавь строку:
Сообщить(ТипЗнч(ТоварыСтрока.Субконто)); |
|||
38
salvator
24.12.14
✎
17:31
|
И напиши что возвращает
|
|||
39
Chameleon1980
24.12.14
✎
17:35
|
Пвх там
|
|||
40
sirbure
24.12.14
✎
17:39
|
Тык что делать то ?))
|
|||
41
Chameleon1980
24.12.14
✎
17:40
|
а счет в документе какой?
|
|||
42
Chameleon1980
24.12.14
✎
17:40
|
счет доходов
|
|||
43
Chameleon1980
24.12.14
✎
17:41
|
скорее всего нужно смотреть счет.
т.к. при выборе счета меняется вид субконто: Процедура ТоварыСчетДоходовПриИзменении(Элемент) СтрокаТЧ = ЭлементыФормы.Товары.ТекущиеДанные; Счет = СтрокаТЧ.СчетДоходов; Если Счет.ВидыСубконто.Количество() > 0 Тогда СтрокаТЧ.Субконто = Новый(Счет.ВидыСубконто[0].ВидСубконто.ТипЗначения.Типы()[0]) Иначе СтрокаТЧ.Субконто = Неопределено; КонецЕсли; ЭлементыФормы.Товары.Колонки.Субконто.Доступность = НЕ (НЕ ЗначениеЗаполнено(Счет) ИЛИ (Счет.ВидыСубконто.Количество() = 0)); КонецПроцедуры |
|||
44
sirbure
24.12.14
✎
17:52
|
(43) Счет не меняю, и он указан, субконто пустое, либо задано, но хочу поставить свое. А если я укажу его так:
.Субконто="Основная номенклатурная группа", я понимаю что криво, но не поломает ли чего ?) |
|||
45
salvator
24.12.14
✎
17:56
|
(44) На (41)+(42) ответь
|
|||
46
barrgand
24.12.14
✎
17:56
|
(45) Это уже поломало... людям мозг
|
|||
47
Chameleon1980
24.12.14
✎
17:57
|
дык говорят же, что не строку нужно присваивать
не так Субконто="Основная номенклатурная группа" до цикла: Нужноесубконто=Справочники.НоменклатурныеГруппы.НайтиПоНаименованию("Основная номенклатурная группа"); а в цикле Субконто=НужноеСубконто; |
|||
48
sirbure
24.12.14
✎
18:01
|
Счет Доходов 90.01.1
(47) я делаю так, как Вы говорите, как я понимаю строковые данные просто не запишутся туда? |
|||
49
Serg_1960
24.12.14
✎
18:03
|
Типовая обработка "Групповая обработка справочников и документов" и ничего писать не надо.Ну, да, я лентяй :)
В обработке самое важное :) не забыть отметить, что обрабатывать будешь документы и их табличные части. |
|||
50
salvator
24.12.14
✎
18:04
|
(48) Запускай отлачик и смотри, что происходит с реквизитом "Субконто" в процессе обработки. Быстрый, и, главное, надежный вариант решения проблемы.
|
|||
51
hhhh
24.12.14
✎
18:05
|
(48) вот это объясни
Ссылка=СтрокаТаблицы.Ссылка; и Для каждого СтрокаТаблицы что у тебя такое всё-таки СтрокаТаблицы? Это какой-то монстр? |
|||
52
Chameleon1980
24.12.14
✎
18:12
|
все верно у этого счета первое субконто "НоменклатурныеГруппы"
текст не присвоишь. тип значения поля субконто = типу 1 субконто выбранного счета, у тебя 90.1.1. пробуй: РеализацияОбъект=СсылкаНаДокумент.ПолучитьОбъект(); Нужноесубконто=Справочники.НоменклатурныеГруппы.НайтиПоНаименованию("Основная номенклатурная группа"); // тут можно проверить на предмет найденности НужногоСубконто Для каждого ТоварыСтрока из РеализацияОбъект.Товары Цикл ТоварыСтрока.Субконто = НужноеСубконто; КонецЦикла; РеализацияОбъект.Записать(); |
|||
53
sirbure
24.12.14
✎
18:16
|
(51) плин, одна и таже СтрокаТаблицы видимо да?)) она как переменная ? для чтения другой таблицы нужно написать СтрокаТаблицы1?
|
|||
54
Chameleon1980
24.12.14
✎
18:22
|
(53) ответ неправильный
оказывается все хуже. пардон. читай: итераторы, коллекции значений |
|||
55
sirbure
24.12.14
✎
18:33
|
(52) Большое спасибо за помощь! Работает)
|
|||
56
sirbure
24.12.14
✎
18:33
|
Всем кто откликнулся спасибо, можно закрывать)
|
|||
57
Wirtuozzz
24.12.14
✎
18:38
|
(1) класс!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |