|
СправочникСписок.Номенклатура отбор по РегиструНакопления. | ☑ | ||
---|---|---|---|---|
0
tabarigen
27.07.16
✎
16:02
|
Здравствуйте.
На форме есть тип объекта СправочникСписок. С установкой отборов по реквизитам проблем нет. 1) А вот могу ли я вывести только ту номенклатуру которая есть на остатке по кастомному регистру накопления. То бишь переопределить выводимый список. 2) Если нельзя то правильно ли я понимаю, что нужно будет сменить тип реквизита с СправочникСписок на ТаблицаЗначений и заполнить его программно. |
|||
1
Ёпрст
27.07.16
✎
16:04
|
1.да
2.нет |
|||
2
Зая Бусечка
27.07.16
✎
16:06
|
Получаем список при открытии и ставим его в отбор
|
|||
3
Зая Бусечка
27.07.16
✎
16:06
|
ну... Или переделываем форму в УФ и настраиваем ДС.
|
|||
4
tabarigen
27.07.16
✎
16:09
|
(3) Форму нельзя переделать на УФ.
(2) Еще раз повторюсь отбирать нужно не по реквизитам номенклатуры. |
|||
5
hhhh
27.07.16
✎
16:10
|
(4) ну в ут возьмите подбор, скопируйте к себе. Зачем велосипеды изобретать?
|
|||
6
Ёпрст
27.07.16
✎
16:11
|
(4) тебе еще раз повторяют: сделай запрос на остатки, получи список элементов, воткни его в отбор. Наслаждайся.
|
|||
7
tabarigen
27.07.16
✎
16:25
|
(6) у меня нет ут, я собственно так и сделал скопировал, подбор и взял к себе. Суть в том что я внес дополнительный регистр и хочу показывать только ту номенклатуру которая есть на остатке в этом регистре.
|
|||
8
tabarigen
27.07.16
✎
16:27
|
(6) Идею понял, попробую сейчас.
|
|||
9
tabarigen
27.07.16
✎
16:45
|
Запрос такой
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | _Номенклатура.Код |ИЗ | РегистрНакопления.ТоварыСоСроками.Остатки КАК ТоварыСоСрокамиОстатки | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК _Номенклатура | ПО ТоварыСоСрокамиОстатки.Номенклатура = _Номенклатура.Ссылка"; Результат = Запрос.Выполнить(); ТоварыСоСроками = Результат.Выгрузить(); Отбор такой. СправочникСписок.Отбор.Код.ВидСравнения = ВидСравнения.ВСписке; СправочникСписок.Отбор.Код.Значение = ТоварыСоСроками; СправочникСписок.Отбор.Код.Использование = Истина; Сейчас выдается ошибка, несоответствие типов СправочникСписок.Отбор.Код.Значение = ТоварыСоСроками; по причине: Неверный тип значения Вопрос, какой тип нужно передать в Значение отбора |
|||
10
vicof
27.07.16
✎
16:48
|
добавить в запрос ссылку, код убрать нафиг. Результат.Выгрузить().ВыгрузитьКолонку("Ссылка");
|
|||
11
vicof
27.07.16
✎
16:48
|
И отбор не на код, а на ссылку накладывать
|
|||
12
tabarigen
27.07.16
✎
16:56
|
(10) да какая разница, ссылка или код. Сделал ссылку ошибка та же, где то упустил какую то мелочь
|
|||
13
tabarigen
27.07.16
✎
16:56
|
Процедура ПриОткрытии()
// Установим режим поля списка в зависимости от режима открытия формы ЭлементыФормы.Список.РежимВыбора = ЭтаФорма.РежимВыбора; ЭлементыФормы.ТаблицаХарактеристик.РежимВыбора = ЭтаФорма.РежимВыбора; //ПараметрВыборГруппИЭлементов=ИспользованиеГруппИЭлементов.Элементы; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | _Номенклатура.Код |ИЗ | РегистрНакопления.ТоварыСоСроками.Остатки КАК ТоварыСоСрокамиОстатки | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК _Номенклатура | ПО ТоварыСоСрокамиОстатки.Номенклатура = _Номенклатура.Ссылка"; Результат = Запрос.Выполнить(); ТоварыСоСроками = Результат.Выгрузить().ВыгрузитьКолонку("Код"); КолонкаКода = ПолучитьПараметрыРежимаВыводаКода(); ЭтаФорма.ЭлементыФормы.Список.Колонки.Код.ТекстШапки = КолонкаКода.Синоним; ЭтаФорма.ЭлементыФормы.Список.Колонки.Код.ПодсказкаВШапке = КолонкаКода.Синоним; ИмяРеквизитаКода = КолонкаКода.Имя; ЭтаФорма.ЭлементыФормы.ПанельСписки.ТекущаяСтраница = ЭтаФорма.ЭлементыФормы.ПанельСписки.Страницы.СтраницаНоменклатура; ЭтаФорма.ТекущийЭлемент = ЭлементыФормы.Список; СправочникСписок.Отбор.ПометкаУдаления.ВидСравнения = ВидСравнения.Равно; СправочникСписок.Отбор.ПометкаУдаления.Значение = Ложь; СправочникСписок.Отбор.ПометкаУдаления.Использование = Истина; СправочникСписок.Отбор.Код.ВидСравнения = ВидСравнения.ВСписке; СправочникСписок.Отбор.Код.Значение = ТоварыСоСроками; СправочникСписок.Отбор.Код.Использование = Истина; УстановитьВидимостьКнопок(); орЗаполнитьТаблицуИндикации(ТаблицаИндикации); ПроверитьДоступностьСопутствующихТоваров(); КонецПроцедуры |
|||
14
vicof
27.07.16
✎
16:58
|
(12) большая.
Напоминает анекдот: Время всемирного потопа. Начал идти дождь, и Ной уже закрылся в своем ковчеге. Остальные евреи тоже хотят спастись и начинают строить лодки. Все строят, а Хаим не строит. Хаим молится. А вода все прибывает. Вот вода уже по колено. Подплывает к Хаиму лодка, и ему говорят: "Хаим, садись к нам в лодку, а то утонешь". А он отвечает: "Не надо, мой Бог меня спасет". Вода - по пояс. Подплывает вторая лодка. "Хаим, садись в лодку, а то утонешь". А он опять: "Не надо, мой Бог меня спасет". Вода - по шею. Третья лодка подплывает, и все повторяется снова. В общем, утонул Хаим. Приходит он к Богу и говорит: "Я так молился, так молился! Почему же Ты меня не спас???" А Бог отвечает: "Глупец! Я же посылал за тобой три лодки!!!" |
|||
15
youalex
27.07.16
✎
17:05
|
Если в списке отбора будет много элементов, СправочникСписок будет тупить скорее всего.
Из-за того, что не получится запихнуть все ссылки напрямую в текст запроса, в условие IN(). И тогда отбор будет производится через создание времянки (один элемент - один Insert) и соединение с ней |
|||
16
tabarigen
27.07.16
✎
17:08
|
(14) Сделал со ссылкой ошибка та, же неверный тип.
|
|||
17
Ёпрст
27.07.16
✎
17:11
|
(16) посмотри, что возвращает метод выгрузитьКолонку. подумай, чем ЭТО отличается от списка значения.
|
|||
18
Ёпрст
27.07.16
✎
17:11
|
потом придёт оно, просветление :)
|
|||
19
tabarigen
27.07.16
✎
17:17
|
(17) посмотрел на выходе массив..
|
|||
20
tabarigen
27.07.16
✎
17:20
|
(18) спасибо за наводку.
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | _Номенклатура.Ссылка |ИЗ | РегистрНакопления.ТоварыСоСроками.Остатки КАК ТоварыСоСрокамиОстатки | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК _Номенклатура | ПО ТоварыСоСрокамиОстатки.Номенклатура = _Номенклатура.Ссылка"; Результат = Запрос.Выполнить(); ТоварыСоСроками = Результат.Выгрузить().ВыгрузитьКолонку("Ссылка"); Список = Новый СписокЗначений(); Для Каждого Товар из ТоварыСоСроками Цикл Список.Добавить(Товар); КонецЦикла; СправочникСписок.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке; СправочникСписок.Отбор.Ссылка.Значение = Список; СправочникСписок.Отбор.Ссылка.Использование = Истина; |
|||
21
Ёпрст
27.07.16
✎
17:23
|
(20) нафига цикл то ? Там же есть ЗагрузитьЗначения у списка, туда пихай свой массив.
|
|||
22
tabarigen
27.07.16
✎
17:23
|
(21) ого. вот это поворот.
|
|||
23
Ёпрст
27.07.16
✎
17:24
|
(20) выкинь из запроса левое соединение к едрени фени. Получай просто измерение Номенклатура в запросе.
|
|||
24
tabarigen
27.07.16
✎
17:25
|
(23) куя себе рефакторинг.
Но все же спасибо большое вам. После Питона на 1С снова болезненно переходить. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |