0 / 0 / 0
Регистрация: 16.04.2008
Сообщений: 123
1

Приполученииданных

23.10.2011, 10:35. Показов 16935. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Процедура СписокПриПолученииДанных(Элемент, ОформленияСтрок)
ОформлениеСтрокиПоНоменклатуре = Новый Соответствие;
ОтображаемыеТовары = Новый Массив;

Для каждого ОформлениеСтроки из ОформленияСтрок Цикл
Товар = ОформлениеСтроки.ДанныеСтроки.Ссылка;

// Заполнить массив отображаемых номенклатурных позиций

ОтображаемыеТовары.Добавить(Товар);

// Заполнить соответствие товара и оформления строки

ОформлениеСтрокиПоНоменклатуре.Вставить(Товар, ОформлениеСтроки);
КонецЦикла;

// Сформировать запрос для получения остатков

Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ
| Штрихкоды.Штрихкод,
| Штрихкоды.Владелец КАК Номенклатура,
| Штрихкоды.Владелец.Код
|ИЗ
| РегистрСведений.Штрихкоды КАК Штрихкоды
|ГДЕ
| Штрихкоды.Владелец В(&Номенклатура)";

Запрос.УстановитьПараметр("Номенклатура", ОтображаемыеТовары);
Запрос.Выполнить().Выгрузить().ВыбратьСтроку();
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Вроде бы все просто.... но на списке не верно штрихкод отображает.

Отладчиком смотрел правильные значения присваивает тут

ОформлениеСтрокиПоНоменклатуре.Получить(Выборка.Номенклатура).Ячейки.Штрихкод.Зн
ачение = Выборка.Штрихкод;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.10.2011, 10:35
Ответы с готовыми решениями:

Приполученииданных / Привыводестроки
У меня на форме списка документов выводится колонка, требующая расчета, т.е. не быстро. Встречал в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
23.10.2011, 10:48 2
Цитата Сообщение от Renat11111
Вроде бы все просто.... но на списке не верно штрихкод отображает.
"не верно" это как?
0
0 / 0 / 0
Регистрация: 16.04.2008
Сообщений: 123
23.10.2011, 10:51 3
Не верно это не тот штрихкод показывает у номенклатуры. Иногда штрихкод раздваивает, и растраивает
0
1 / 1 / 0
Регистрация: 04.12.2005
Сообщений: 1,588
23.10.2011, 11:47 4
Цитата Сообщение от Renat11111
Иногда штрихкод раздваивает, и растраивает
а это что означает?
0
0 / 0 / 0
Регистрация: 07.07.2008
Сообщений: 1,401
23.10.2011, 12:50 5
А может на ячейке формат указан, типа с разделителями разрядов?

а если имеется ввиду несколько подряд значений штрих-кода - тогда дело в результатах запроса: в нем несколько записей. Добавьте в запрос РАЗЛИЧНЫЕ и будет то что надо.



ОформлениеСтрокиПоНоменклатуре.Получить(Выборка.Номенклатура).Ячейки.Штрихкод.Зн
ачение = Выборка.Штрихкод;
Вот интересно - выборка это по сути что-то между ТЗ и XML - то бишь надо позиционироваться на элементы : например Выборка[1].Штрихкод. А тут позиционирования нет, но раз работает, значит позиционирование уже произошло. То бишь что то типа

ВыборкаЗапрос = Запрос.Выполнить().Выбрать();
Для каждого Выборка из ВыборкаЗапрос Цикл

или

выборка = выборкаЗапрос[1];
0
1 / 1 / 0
Регистрация: 15.11.2009
Сообщений: 947
24.10.2011, 01:12 6
А вот никого не смущает мощная конструкция в С-шном стиле?

Код ( (Unknown Language)):
Запрос.Выполнить().Выгрузить().ВыбратьСтроку();
Выборка = Запрос.Выполнить().Выбрать();
Если я не слепой, то запрос 2 раза отрабатывает.

Еще. Глядя на запрос мне видится, что на 1 объект Номенклатура в регистре может быть несколько Штрих-кодов. Так какой из них хочешь вывести в Оформление?
0
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
24.10.2011, 09:57 7
Цитата Сообщение от Дайнеко
Если я не слепой, то запрос 2 раза отрабатывает.
Думаю, первая строка для отладки.
0
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 553
24.10.2011, 14:10 8
Цитата Сообщение от unknown181538
Думаю, первая строка для отладки.
Не совсем. Данный запрос будет выполнятьс столько раз сколько в настоящий момент на экране в форме видно строк.

Либо не используйте запрос, либо выполните его 1 раз.

В идеале, запрос тут не нужен вообще. Для полуения остатков лучше обращаться к виртуальной таблице:


Код ( (Unknown Language)):
Остатки = РегистрыНакопления.ОстаткиТоваров.Остатки("ДатаОстатков", Структура-отбор по номенклатуре);
На выходе имеете ТЗ по отбору.

Для вывода штрих кода - методом "ПриПолученииДанных", мне кажется проще использовать свойство оформления строк - "УстановитьТекст", потому как вы циклом обходите коллекцию оформлений, а потом "Получить()" - это уже лишнее. Во первых - тормознуто, во-вторых - не по фен-шую. в цикле обращайтесь к вирт. таблице остатков и там же устанавливайте штрих код (есть и номенклатура и позиционирование на текущую строку списка.
0
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
25.10.2011, 02:59 9
Мне кажется, что при получении данных запрос обработает несколько строк одновременно, т.е. если резко прокрутить, будет запрос сразу по большому кол-ву строк, что предпочтительней.
Вообще, тема весьма обсосана в книге знаний Мисты.
0
25.10.2011, 02:59
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru