Табличная часть документа
Показывать по
10
20
40
сообщений
- 1
- 2
05.10.2005
06:06
#1
"Пишу в "ОбработкаПроведения()":
НоваяСтрока();
Товар=Т.Товар;
Цена=Т.Цена;
Сумма=Т.Сумма;// и т.д.
Тоже самое с Т1.
Т, Т1 = это таблицы значений, в которые выгрузил Т.Ч. Документа (ВыгрузитьТабличнуюЧасть(Т)) и затем удалил некоторые ненужные строки.
Получаю:
После провеления Поле "Товар" пустое, а цена, сумма, ндс и т.д. Стоят.
если сделать:
"ЗагрузитьТабличнуюЧасть(Т)" - тогда всё нормально. Раньше такого не замечал.
В т.ч. документа - тип "Товар" - "Справочник.Номенклатура", в "Т" - тоже самое. в "Сообщить(Т.Товар)" - пишет наименование товара, вроде бы всё должно работать. В чем причина?
Уже делал НайтиЭлемент(Т.Товар) и подставить в т.часть - не помогает.
Пришлось из двух таблиц значений (Т, Т1) распихивать в третью (Т2), а затем, последней делать "ЗагрузитьТабличнуюЧасть(Т2)"."
НоваяСтрока();
Товар=Т.Товар;
Цена=Т.Цена;
Сумма=Т.Сумма;// и т.д.
Тоже самое с Т1.
Т, Т1 = это таблицы значений, в которые выгрузил Т.Ч. Документа (ВыгрузитьТабличнуюЧасть(Т)) и затем удалил некоторые ненужные строки.
Получаю:
После провеления Поле "Товар" пустое, а цена, сумма, ндс и т.д. Стоят.
если сделать:
"ЗагрузитьТабличнуюЧасть(Т)" - тогда всё нормально. Раньше такого не замечал.
В т.ч. документа - тип "Товар" - "Справочник.Номенклатура", в "Т" - тоже самое. в "Сообщить(Т.Товар)" - пишет наименование товара, вроде бы всё должно работать. В чем причина?
Уже делал НайтиЭлемент(Т.Товар) и подставить в т.часть - не помогает.
Пришлось из двух таблиц значений (Т, Т1) распихивать в третью (Т2), а затем, последней делать "ЗагрузитьТабличнуюЧасть(Т2)"."
09.10.2005
14:42
#3
"А Вы сами-то попробуйте, ради прикола.
НоваяСтрока();
Товар=.......
На разных компьютерах, в разных фирмах, в том ч. уменя дома - не работает! Фантастика!
Именно в модуле документа, пр-Дура "ОбработкаПроведения()".
В Форма -> Модуль не пробовал. Да оно там и не нужно.
Цель - отсортировать товар комиссионный от собственного при проведении.
Сначала должен быть комиссионный, весь остальной - далее."
НоваяСтрока();
Товар=.......
На разных компьютерах, в разных фирмах, в том ч. уменя дома - не работает! Фантастика!
Именно в модуле документа, пр-Дура "ОбработкаПроведения()".
В Форма -> Модуль не пробовал. Да оно там и не нужно.
Цель - отсортировать товар комиссионный от собственного при проведении.
Сначала должен быть комиссионный, весь остальной - далее."
11.10.2005
16:58
#4
В данном случае попробуй метод УстановитьАтрибут. Хотя то, что придумал - это по РУССКИ!!!
12.10.2005
15:18
#5
"А зачем тебе 2 таблицы для сортировки ?
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ВыгрузитьТабличнуюЧасть(ТЗ);
ТЗ.НоваяКолонка("ПолеДляСортировки");
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку() = 1 Цикл
ТЗ.ПолеДляСортировки = ?(ТЗ.Товар.Комиссионный = 1, "Комиссия", "Не комиссия");
КонецЦикла;
ТЗ.Сортировать("ПолеДляСортировки");
ЗагрузитьТабличнуюЧасть(ТЗ);
-------------------------------
Чтобы ответить, очему не работает в твоем случае - нужно видеть весь твой текст. Или сам воспользуйся отладчиком и посмотри, где теряется значение."
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ВыгрузитьТабличнуюЧасть(ТЗ);
ТЗ.НоваяКолонка("ПолеДляСортировки");
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку() = 1 Цикл
ТЗ.ПолеДляСортировки = ?(ТЗ.Товар.Комиссионный = 1, "Комиссия", "Не комиссия");
КонецЦикла;
ТЗ.Сортировать("ПолеДляСортировки");
ЗагрузитьТабличнуюЧасть(ТЗ);
-------------------------------
Чтобы ответить, очему не работает в твоем случае - нужно видеть весь твой текст. Или сам воспользуйся отладчиком и посмотри, где теряется значение."
13.10.2005
13:31
#7
"Хотя ты прав, с таблицами значений глюки происходят.
Вот следующий код не работает и всегда получается одно и то же значение хотя выбираешь разные строки
стр = 0;
Если тз.ВыбратьСтроку(стр, "Выбирете документ к просмотру", 0) = 1 тогда
тз.ТекущаяСтрока(стр);
док = тз.док;
КонецЕсли;
Но если поставить внутри "если"
док = тз.ПолучитьЗначение(стр, 1);// 1 - номер колонки "док"
тогда всё работает нормально.
"
Вот следующий код не работает и всегда получается одно и то же значение хотя выбираешь разные строки
стр = 0;
Если тз.ВыбратьСтроку(стр, "Выбирете документ к просмотру", 0) = 1 тогда
тз.ТекущаяСтрока(стр);
док = тз.док;
КонецЕсли;
Но если поставить внутри "если"
док = тз.ПолучитьЗначение(стр, 1);// 1 - номер колонки "док"
тогда всё работает нормально.
"
13.10.2005
15:53
#8
Этот глюк пошел примерно после 10-й платформы. Как я помню, пришлось конфу переделывать.
Раньше по-умолчанию была текущая строка таблицы, а сейчас - нужно конкретно указывать номер строки.
Раньше по-умолчанию была текущая строка таблицы, а сейчас - нужно конкретно указывать номер строки.
13.10.2005
15:58
#9
Там идет не просто сортировка:
Комиссионный товар разбивается по комитентам (если несколько штук одного и тогоже товара принадлежат разным комитентам), или объединяются строки, если 2(или более строк) одного товара принадлежат одному комитенту.
После всего этого дописывается собственный товар.
Это нужно для того, чтобы количество проводок 004-го товара=количество строк в документе. Для отчета реализатора. 41-же счет, никакой роли не играет.
Нужно это ещё и для того, чтобы определить место хранения 004 товара.
Субконто "МестаХранения" у него нет, так что приходится его брать из приходных и расходных накладных
Комиссионный товар разбивается по комитентам (если несколько штук одного и тогоже товара принадлежат разным комитентам), или объединяются строки, если 2(или более строк) одного товара принадлежат одному комитенту.
После всего этого дописывается собственный товар.
Это нужно для того, чтобы количество проводок 004-го товара=количество строк в документе. Для отчета реализатора. 41-же счет, никакой роли не играет.
Нужно это ещё и для того, чтобы определить место хранения 004 товара.
Субконто "МестаХранения" у него нет, так что приходится его брать из приходных и расходных накладных
15.10.2005
11:58
#10
"Проверил на Торговле 7.70.025 в доке реализации все нормально работает:
Табл = Создатьобъект("ТаблицаЗначений");
ВыгрузитьТабличнуюЧасть(Табл);
Табл.Сортировать("Цена-");
УдалитьСтроки();
Табл.ВыбратьСтроки();
Пока Табл.ПолучитьСтроку() = 1 Цикл
НоваяСтрока();
Номенклатура = Табл.Номенклатура;
Количество = Табл.Количество;
Цена = Табл.Цена;
КонецЦикла;
Т.е. номенклатура остается.
Может быть в твоем документе поле товар - в конфе описано как поле неопределенного типа. А затем при создании строк тип прописывается.
Тогда следует при присвоении сначала назначать тип - иначе оно ссылку не возьмет
У меня была как то одна ошибка подобного рода - там было как раз неопределено."
Табл = Создатьобъект("ТаблицаЗначений");
ВыгрузитьТабличнуюЧасть(Табл);
Табл.Сортировать("Цена-");
УдалитьСтроки();
Табл.ВыбратьСтроки();
Пока Табл.ПолучитьСтроку() = 1 Цикл
НоваяСтрока();
Номенклатура = Табл.Номенклатура;
Количество = Табл.Количество;
Цена = Табл.Цена;
КонецЦикла;
Т.е. номенклатура остается.
Может быть в твоем документе поле товар - в конфе описано как поле неопределенного типа. А затем при создании строк тип прописывается.
Тогда следует при присвоении сначала назначать тип - иначе оно ссылку не возьмет
У меня была как то одна ошибка подобного рода - там было как раз неопределено."
- 1
- 2
Читают тему
(гостей: 1)