|
Не заполняется табличная часть после записи ↓ (Волшебник 12.11.2024 09:38) lastochkaitochka, Мультук, orakool, AAA, Шурик71, shuhard, osa1C, ewg, Волшебник, Hawk_1c, lEvGl, serega1977, Ненавижу 1С, elka302, Has
| ☑ | ||
---|---|---|---|---|
0
lastochkaitochka
naïve
08.11.24
✎
16:47
|
УТ 11. Пишу расширение для документа Перемещение товаров, добавил кнопку Заполнить, по которой заполняется табличная часть Товары. Если документ новый, то все работает корректно, однако после его записи, при попытке снова заполнить тч по этой команде, тч остается пуста. В отладчике Объект.Товары заполнен как надо, не могу понять, в чем дело и где искать. Подскажите, пожалуйста
|
|||
1
osa1C
08.11.24
✎
16:57
|
(0) ну и описание.... Вангую. После записи документа Перемещение товаров товары перемещаются и товаров больше нет. Перемещать нечего.
|
|||
2
lastochkaitochka
naïve
08.11.24
✎
16:59
|
Эта команда каждый раз заполняет по разному, в зависимости, какую характеристику выбрал пользователь
|
|||
3
Волшебник
08.11.24
✎
17:08
|
Враньё
|
|||
4
Волшебник
08.11.24
✎
17:49
|
Программа работает детерминированно. Никаких "по-разному" быть не может.
|
|||
5
osa1C
08.11.24
✎
17:49
|
(2) от нас-то ты что хочешь?
|
|||
6
Мультук
08.11.24
✎
18:20
|
(0)
>>добавил кнопку Заполнить, по которой заполняется табличная >>часть Товары. Заполняется чудодейственным образом или написан программный код ? Секретный, наверное ? |
|||
7
craxx
09.11.24
✎
08:48
|
(4) Есть подозрение, что товары заполняются по остаткам, остатки автор берет на дату документа, а надо на момент времени. И второй раз на остатке уже нету, потому что крайний документ на дату - это самое перемещение, которое их списало.
|
|||
8
Ненавижу 1С
09.11.24
✎
09:11
|
Возможно и отбор наложен на тч визуально. Вариантов миллион
|
|||
9
AAA
09.11.24
✎
10:10
|
Любопытный момент заключается в том, что в штатном документе есть и обработка заполнения и кнопка "Заполнить". Зачем эту кнопку добавлять в расширение?
|
|||
10
Ненавижу 1С
09.11.24
✎
10:11
|
(9) возможно очень хитрое правило заполнения, а возможно и незнание типового функционала
|
|||
11
lEvGl
09.11.24
✎
12:39
|
95% путает объект с формой
|
|||
12
lastochkaitochka
naïve
11.11.24
✎
09:37
|
Кнопка переносит остатки с выбранной характеристикой, по времени указана Текущая дата, т.е. после нажатия открывается форма выбора и остатки можно выбрать разные, все с характеристикой "1" или все с характеристикой "2" и так далее
|
|||
13
Stepashkin
11.11.24
✎
09:59
|
(0) Галка "Сохраняемые данные" стоит?
|
|||
14
lastochkaitochka
naïve
11.11.24
✎
10:25
|
(13) да
|
|||
15
Мультук
11.11.24
✎
10:28
|
(0)
>>добавил кнопку Заполнить, по которой заполняется табличная часть Товары. Далее автор пишет >>Кнопка переносит остатки >>т.е. после нажатия открывается форма выбора и остатки можно выбрать Либо автор не умеет формулировать мысли, либо {далее слова Волшебника} |
|||
16
shuhard
11.11.24
✎
10:30
|
(12) либо код, либо бан, пятница кончилась
|
|||
17
lastochkaitochka
naïve
12.11.24
✎
09:30
|
Хорошо, рассказываю подробно, заполняющая кнопка открывает произвольную форму, в которой пользователь выбирает характеристику номенклатуры, после выбора нужных характеристик по кнопке Готово вызывается процедура формы документа с переданными ей характеристиками. Код:
&НаКлиенте Процедура ОбработатьТовары(ВыбранныеХарактеристики) Экспорт СписокТоваров = Новый Массив; ЗаполнитьТовары(ВыбранныеХарактеристики, СписокТоваров); Для Индекс = 0 По СписокТоваров.Количество() - 6 Цикл Строка = Объект.Товары.Добавить(); Строка.Номенклатура = СписокТоваров[Индекс]; Строка.ТипНоменклатуры = СписокТоваров[Индекс + 1]; Строка.ХарактеристикиИспользуются = Истина; Строка.Характеристика = СписокТоваров[Индекс + 2]; Строка.Назначение = СписокТоваров[Индекс + 3]; Строка.Серия = СписокТоваров[Индекс + 4]; Строка.КоличествоУпаковок = СписокТоваров[Индекс + 5]; Индекс = Индекс + 5; КонецЦикла; КонецПроцедуры В серверной процедуре запрос, получающий нужные остатки и кладущий их в массив: &НаСервере Процедура ЗаполнитьТовары(ВыбранныеХарактеристики, СписокТоваров) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура, | ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика, | ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.Назначение КАК Назначение, | ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.Серия КАК Серия, | ТоварыОрганизацийОстатки.КоличествоОстаток КАК КоличествоОстаток |ИЗ | РегистрНакопления.ТоварыОрганизаций.Остатки(&Момент, Организация = &Организация) КАК ТоварыОрганизацийОстатки |ГДЕ | ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.Характеристика.Наименование В(&ВыбранныеХарактеристики) | И ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.СкладскаяТерритория В (&Склад)"; Запрос.УстановитьПараметр("Склад", Объект.СкладОтправитель); Запрос.УстановитьПараметр("Организация", Объект.Организация); Запрос.УстановитьПараметр("Момент", ТекущаяДата()); Запрос.УстановитьПараметр("ВыбранныеХарактеристики", ВыбранныеХарактеристики); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл СписокТоваров.Добавить(Выборка.Номенклатура); СписокТоваров.Добавить(Выборка.Номенклатура.ТипНоменклатуры); СписокТоваров.Добавить(Выборка.Характеристика); СписокТоваров.Добавить(Выборка.Назначение); СписокТоваров.Добавить(Выборка.Серия); СписокТоваров.Добавить(Выборка.КоличествоОстаток); КонецЦикла; КонецПроцедуры |
|||
18
Ненавижу 1С
12.11.24
✎
09:35
|
Для Индекс = 0 По СписокТоваров.Количество() - 6 Цикл
Строка = Объект.Товары.Добавить(); Строка.Номенклатура = СписокТоваров[Индекс]; Строка.ТипНоменклатуры = СписокТоваров[Индекс + 1]; Строка.ХарактеристикиИспользуются = Истина; Строка.Характеристика = СписокТоваров[Индекс + 2]; Строка.Назначение = СписокТоваров[Индекс + 3]; Строка.Серия = СписокТоваров[Индекс + 4]; Строка.КоличествоУпаковок = СписокТоваров[Индекс + 5]; Индекс = Индекс + 5; КонецЦикла; это цинк |
|||
19
Волшебник
12.11.24
✎
09:38
|
(17) что это за хуйня?!
|
|||
20
osa1C
12.11.24
✎
09:46
|
(17) Начнем с того, что структура списка товаров вообще кривая. Все характеристики для каждого товара надо засунуть в Структуру, потом уже создавать массив из структур. А заполнение неоднородными параметрами по индексу массива - это мовЕтон. Какой-то дурацкий подсчет индексов....
Хотя с другой стороны и структура, и массив совсем не нужны. Запрос уже получает таблицу значений. Из нее можно заполнять при помощи ЗаполнитьЗначенияСвойств |
|||
21
Волшебник
12.11.24
✎
09:42
|
(20) пишется моветон
|
|||
22
Мультук
12.11.24
✎
09:52
|
(17)
1) Что мешает "класть" в Объект.Товары сразу в Процедура ЗаполнитьТовары(ВыбранныеХарактеристики, СписокТоваров) А не тащить всё это на клиента ? 2) И где заполнение поля "Количество" ? 3) Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл НоваяСтрока = Объект.Товары.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка); КонецЦикла; |
|||
23
lastochkaitochka
naïve
12.11.24
✎
09:48
|
Ну вопрос не про способ заполнения, а по какой причине может быть, что после записи табличная часть на форме не заполняется снова, хотя в отладчике все заполнено
|
|||
24
lastochkaitochka
naïve
12.11.24
✎
09:52
|
(22) так тоже изначально делал, просто уже не знаю, в чем может быть ошибка и пытаюсь разными способами пробовать.
Строка.КоличествоУпаковок |
|||
25
Мультук
12.11.24
✎
09:56
|
(24)
Реквизит "Количество" Реквизит "КоличествоУпаковок" Немного разные на мой взгляд слова и реквизиты.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |