Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Горячая тема (более 10 ответов) Подбор по номенклатуре (число прочтений - 10882 )
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Подбор по номенклатуре
05. Апреля 2010 :: 15:22
Печать  
Кто нить делал подбор по номенклатуре через ТП чтобы и цены и остатки прямыми запросами считались, киньте примерчик.
  
Наверх
 
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Подбор по номенклатуре
Ответ #1 - 06. Апреля 2010 :: 07:03
Печать  
Вот тут нашел
http://www.1cpp.ru/forum/YaBB.pl?num=1148791000

но почему-то не работает, кто разбирается, подскажите как запустить ?
гРФорма=СоздатьОбъект("Общие.Форма.Привязка");
{E:\1C_BASE\TRADE\EXTFORMS\РАСШСПРАВОЧНИК\ТЕСТ\ПОДБОР.ERT(470)}: Неудачная попытка создания объекта (Общие.Форма.Привязка)
у меня 1срр 3 0 1 26 formex 2.0.5.99
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Подбор по номенклатуре
Ответ #2 - 06. Апреля 2010 :: 07:05
Печать  
Ну надо подключить класс Общие.Форма.Привязка
  
Наверх
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Подбор по номенклатуре
Ответ #3 - 06. Апреля 2010 :: 07:07
Печать  
А поподробнее плизз, как его подключить ? Где взять ?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Подбор по номенклатуре
Ответ #4 - 06. Апреля 2010 :: 11:38
Печать  
А попробовать ПоставщикДанных + связка с ПрямойЗапрос?
Мне кажется тоже вариант. Там я даже пример выкладывал.
Адрес темы у меня в подписи есть.

Пы.сы. извините за саморекламу...  Подмигивание
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Подбор по номенклатуре
Ответ #5 - 07. Апреля 2010 :: 06:59
Печать  
Скачал пример, попробовал, понравилось.
Начал под себя переделывать.
Вопрос, как добавить колонку ?
Если просто сделать

ДанныеСправочник.НоваяКолонка("Ост");

выдает ошибку что такой колонки нет. Как мне сделать колонку с остатками или тут другой подход нужен ? Изменить запрос что бы он возвращал эту колонку ?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Подбор по номенклатуре
Ответ #6 - 07. Апреля 2010 :: 09:46
Печать  
Колонку надо добавлять через табличное поле, а остатки подключать через модификацию текста запроса в событии ПриПолученииЗапроса.

Опять таки в примере по номенклатуре там так и есть.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Подбор по номенклатуре
Ответ #7 - 07. Апреля 2010 :: 13:22
Печать  
О каком примере идет речь ?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Подбор по номенклатуре
Ответ #8 - 07. Апреля 2010 :: 14:08
Печать  
Справочник "Контрагенты"
http://www.1cpp.ru/forum/YaBB.pl?num=1248941896/486#486
Небольшой пример для демонстрации работы с КОП.

Справочник "Контрагенты" (для конфигурации СКАТ)
http://www.1cpp.ru/forum/YaBB.pl?num=1248941896/399#399
Тоже примерчик для работы с КОП. Батарейки отсутствуют.

Справочник "Номенклатура"
http://www.1cpp.ru/forum/YaBB.pl?num=1248941896/204#204
Вот собственно что тебе надо. Справочник "Номенклатура" + остатки собранные прямым запросом. Кстати на последних страницах (-6-7) обсуждалась возможная оптимизация решения.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Подбор по номенклатуре
Ответ #9 - 08. Апреля 2010 :: 01:31
Печать  
Подскажите как в процедуре
ПриПолученииЗапроса(ТабличноеПоле,Структура)
получить родителя текущего элемента ?
« Последняя редакция: 08. Апреля 2010 :: 04:00 - HeiHeShang »  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Подбор по номенклатуре
Ответ #10 - 08. Апреля 2010 :: 04:03
Печать  
А зачем тебе в этой процедуре Родитель? Скорее всего ты что-то не так делаешь. Опиши задачу, может найдется более удобный способ ее решения.
  
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Подбор по номенклатуре
Ответ #11 - 08. Апреля 2010 :: 19:24
Печать  
ПриПолученииЗапроса - событие вызываемое в промежуточный период между старыми и новыми данными.
По сути какие бы данные не отображались в ТП (и даже если их еще нет) в данном событии они "старые". А новые данные еще не поступили, ибо текст запроса есть только "на бумаге" и в поставщика ТП еще не передан.
Т.о. текущий элемент как определение отсутствует в данный момент, ну или она "старый" и может отсутствовать после того как пройдет событие и текст запроса будет отдан поставщику ТП.

Вообще данная процедура предназначена в первую очередь для модификации текст запроса. Расчет данных в ней только по минимуму. А "текущие данные" вообще в данном событии использовать это только лишние грабли себе создавать.

Хотелось бы видеть описание задачи, ну и путь ее решения и виды на ее решение.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Подбор по номенклатуре
Ответ #12 - 10. Апреля 2010 :: 15:31
Печать  
Задача следующая, при смене родителя производить расчет остатков и выводить элементы группы, только те что на остатках в этой группе.Сейчас так реализовано, хочу переделать на поставщиков данных
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Подбор по номенклатуре
Ответ #13 - 10. Апреля 2010 :: 16:16
Печать  
Че-то я ничего не понял...
1) У тебя выводятся только элементы группы, принадлежащие данному родителю
2) При этом ты хочешь получить Родителя для текущего элемента
3) Для чего? Ведь для любого из элементов будет один и тот же Родитель. Или я чего-то не понимаю?
---
Для определения, сменился ли текущий элемент есть удобное событие "ПриАктивизацииСтроки". Чтобы работало в обработке - надо написать
Код
Выбрать все
Процедура ИмяКнопкиСТабличнымПолемПриАктивизацииСтроки(тп)
Данные = тп.ТекущиеДанные;
Товар = Данные.Товар;
Родитель = Товар.Родитель;
КонецПроцедуры 


Если же делаешь в классе, то в имени процедуры ИмяКнопкиСТабличнымПолем указывать не надо...
  
Наверх
ICQ  
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Подбор по номенклатуре
Ответ #14 - 12. Апреля 2010 :: 04:52
Печать  
Не а не понял
Сейчас выводится из справочника номенклатура А мне надо запрос переделать чтобы элементы брались из регистров. Может мне и не нужна эта процедура, просто в обычной 7.7 в моей конфиге при смене родителя происходит расчет остатков и выгрузка его в список, после чего этот список подсовывается 1С - это штатные средства 1С.
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Подбор по номенклатуре
Ответ #15 - 12. Апреля 2010 :: 09:47
Печать  
Тогда давай уточним, что я понял:
1) Формируем список товаров, находящихся на остатке, по данной товарной группе с добавлением групп на данном уровне и групп верхнего уровня
2) При выборе группы, двойным щелчком, 1-й пункт повторяется для новой группы
Если задача стоит так, то решение должно быть, например, следующим
1) в Табличном поле, для фиксации групп верхнего уровня, использовать "Шапку" http://www.1cpp.ru/docum/icpp/html/TableField.html#id9, в качестве поставщика данных - удобнее использовать Таблицу значений, в которую выгружаешь нужные группы.
2) В самом табличном поле также можно использовать ТЗ в качестве поставщика данных, но можно и ПоставщикДанныхODBC, только надо будет правильно написать запрос, желательно, параметризированный.
3) Обрабатывать надо будет событие "Выбор", т.е. написать процедуру ИмяКнопкиСТабличнымПолемВыбор(тп, _стрк, _клнк, _тр)
в которой анализируя значение _стрк либо осуществлять Выбор (если это элемент), либо в качестве параметра для запроса устанавливать новую группу и выполнить "тп.ОбновитьСтроки()", не забыв и изменить ТЗ для Шапки табличного поля.
  
Наверх
ICQ  
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Подбор по номенклатуре
Ответ #16 - 23. Апреля 2010 :: 04:52
Печать  
Как созданый класс использовать вместо формы для подбора ? Как передать ему контекст документа из которго он вызван ? Как перенести в документ выбранный товар ?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Подбор по номенклатуре
Ответ #17 - 23. Апреля 2010 :: 06:41
Печать  
HeiHeShang писал(а) 23. Апреля 2010 :: 04:52:
Как созданый класс использовать вместо формы для подбора ? Как передать ему контекст документа из которго он вызван ? Как перенести в документ выбранный товар ?


Пишешь
Код
Выбрать все
ОткрытьПодбор("Обработка.ИмяТвоейОбработкиСПоставщиком"); 



В обработке пишешь
Код
Выбрать все
ПоставщикДанных.Данные.РежимВыбора = 1; // можно сделать проверку на режим формы 


после этого появляется новое событие
Код
Выбрать все
ИдентификаторТППриВыбореЗначения(ТП,Значение) 


А в событии пишешь
Код
Выбрать все
Форма.ВыполнитьВыбор(Значение); 



Если в синтаксисе нигде я не ошибся то все так и должно работать.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Подбор по номенклатуре
Ответ #18 - 02. Июня 2010 :: 05:05
Печать  
А если обработка - это внешняя ?
А можно ли в форме списка справочника вместо стандартной таблицы , поставщика данных прикрутить ?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Подбор по номенклатуре
Ответ #19 - 02. Июня 2010 :: 07:27
Печать  
В стандартной форме можно, это конечно не самое хорошее решение, но все таки.
Многострочную часть делаем оч. маленькой, размещаем за гранью формы. Привязку делаем так чтобы смещалась вместе с формой (не попадала на нашу форму) и можно посредством FormEx сделать Видимость = 0. Конечно 1С мы не заставим отменять запросы к базе данных и периодически обновлять это безобразие, но будем считать это неизбежным злом.
Ну и после этого на пустом пространстве размещаем контейнеры для ТП и в модуле все пишем как и в обработке.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
elkpro
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 145
Зарегистрирован: 19. Мая 2006
Re: Подбор по номенклатуре
Ответ #20 - 01. Апреля 2011 :: 07:38
Печать  
Каким образом можно сделать привязку таблицы справочника, чтобы смещалась вместе с формой - у меня она при максимизации внизу раскрывается?
Также не могу понять почему при закрытии формы списка справочника 1С выкидывает. Тоже самое делал через обычную обработку - все нормально.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать