Табличная часть документа

Новая тема
Показывать по 10 20 40 сообщений
"Пишу в "ОбработкаПроведения()":
НоваяСтрока();
Товар=Т.Товар;
Цена=Т.Цена;
Сумма=Т.Сумма;// и т.д.
Тоже самое с Т1.
Т, Т1 = это таблицы значений, в которые выгрузил Т.Ч. Документа (ВыгрузитьТабличнуюЧасть(Т)) и затем удалил некоторые ненужные строки.
Получаю:
После провеления Поле "Товар" пустое, а цена, сумма, ндс и т.д. Стоят.
если сделать:
"ЗагрузитьТабличнуюЧасть(Т)" - тогда всё нормально. Раньше такого не замечал.
В т.ч. документа - тип "Товар" - "Справочник.Номенклатура", в "Т" - тоже самое. в "Сообщить(Т.Товар)" - пишет наименование товара, вроде бы всё должно работать. В чем причина?
Уже делал НайтиЭлемент(Т.Товар) и подставить в т.часть - не помогает.
Пришлось из двух таблиц значений (Т, Т1) распихивать в третью (Т2), а затем, последней делать "ЗагрузитьТабличнуюЧасть(Т2)"."
на 99% уверен что здесь баг в обработке. Надо искать. мож где ошибка.
"А Вы сами-то попробуйте, ради прикола.
НоваяСтрока();
Товар=.......
На разных компьютерах, в разных фирмах, в том ч. уменя дома - не работает! Фантастика!
Именно в модуле документа, пр-Дура "ОбработкаПроведения()".
В Форма -> Модуль не пробовал. Да оно там и не нужно.
Цель - отсортировать товар комиссионный от собственного при проведении.
Сначала должен быть комиссионный, весь остальной - далее."
В данном случае попробуй метод УстановитьАтрибут. Хотя то, что придумал - это по РУССКИ!!!
"А зачем тебе 2 таблицы для сортировки ?
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ВыгрузитьТабличнуюЧасть(ТЗ);
ТЗ.НоваяКолонка("ПолеДляСортировки");
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку() = 1 Цикл
 ТЗ.ПолеДляСортировки = ?(ТЗ.Товар.Комиссионный = 1, "Комиссия", "Не комиссия");
КонецЦикла;
ТЗ.Сортировать("ПолеДляСортировки");
ЗагрузитьТабличнуюЧасть(ТЗ);
-------------------------------
Чтобы ответить, очему не работает в твоем случае - нужно видеть весь твой текст. Или сам воспользуйся отладчиком и посмотри, где теряется значение."
Установить атрибут - тоже не работает
"Хотя ты прав, с таблицами значений глюки происходят.

Вот следующий код не работает и всегда получается одно и то же значение хотя выбираешь разные строки

стр = 0;
Если тз.ВыбратьСтроку(стр, "Выбирете документ к просмотру", 0) = 1 тогда
  тз.ТекущаяСтрока(стр);
  док = тз.док;
КонецЕсли;

Но если поставить внутри "если"
  док = тз.ПолучитьЗначение(стр, 1);//  1 - номер колонки "док"
тогда всё работает нормально.
"
Этот глюк пошел примерно после 10-й платформы. Как я помню, пришлось конфу переделывать.
Раньше по-умолчанию была текущая строка таблицы, а сейчас - нужно конкретно указывать номер строки.
Там идет не просто сортировка:
Комиссионный товар разбивается по комитентам (если несколько штук одного и тогоже товара принадлежат разным комитентам), или объединяются строки, если 2(или более строк) одного товара принадлежат одному комитенту.
После всего этого дописывается собственный товар.
Это нужно для того, чтобы количество проводок 004-го товара=количество строк в документе. Для отчета реализатора. 41-же счет, никакой роли не играет.
Нужно это ещё и для того, чтобы определить место хранения 004 товара.
Субконто "МестаХранения" у него нет, так что приходится его брать из приходных и расходных накладных :(
"Проверил на Торговле 7.70.025 в доке реализации все нормально работает:
Табл = Создатьобъект("ТаблицаЗначений");
ВыгрузитьТабличнуюЧасть(Табл);    
Табл.Сортировать("Цена-");
УдалитьСтроки();        
Табл.ВыбратьСтроки();
Пока Табл.ПолучитьСтроку() = 1 Цикл  
НоваяСтрока();
Номенклатура = Табл.Номенклатура;
Количество = Табл.Количество;
Цена = Табл.Цена;
КонецЦикла;

Т.е. номенклатура остается.
Может быть в твоем документе поле товар - в конфе описано как поле неопределенного типа. А затем при создании строк тип прописывается.
Тогда следует при присвоении сначала назначать тип - иначе оно ссылку не возьмет
У меня была как то одна ошибка подобного рода - там было как раз неопределено."
Читают тему
(гостей: 1)

Быстрый переход