Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Очень популярная тема (более 25 ответов) Перехватить список документов в общем журнале (число прочтений - 13837 )
Thor
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 82
Зарегистрирован: 12. Июля 2006
Перехватить список документов в общем журнале
10. Августа 2006 :: 12:00
Печать  
Доброго времени суток.

Прошу прощения, вопрос немного не по теме. Просто я не знаю к какой категории его отнести Озадачен. Хотелось бы перехватывать вывод списка документов при вводе нового документа в общем журнале. Есть ли у какого-нибудь класса 1С такое событие?Вообще в каком направленнии искать? Может такой функционал уже реализован?

ЗЫ. Поиск рулит, но нужно знать, где искать. Я не нашел.
  
Наверх
ICQ  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Перехватить список документов в общем журнале
Ответ #1 - 10. Августа 2006 :: 12:26
Печать  
Зачем?
  

FormEx developer
Наверх
www  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Перехватить список документов в общем журнале
Ответ #2 - 10. Августа 2006 :: 12:37
Печать  
технология такая (вполне штатная, основанная на одной фиче 1С):
1. Делаем служебный вид документа, например ДиспетчерВводаЖурналаХ
2. У этого документа в модуле лишь одна процедура:
Код
Выбрать все
Процедура ВводНового()
	СтатусВозврата(0);
	Сп=СоздатьОбъект("СписокЗначений");
	Сп.ДобавитьЗначение("ПриходнаяНакладная","Приходная накладная");
	Сп.ДобавитьЗначение("ВозвратПоставщику","Возврат поставщику");
	Сп.ДобавитьЗначение(<ВидРеальногоДокумента>,<Представление вида>);
	Зн="";
	Если Сп.ВыбратьЗначение(Зн,"Выбор вида документа")=1 Тогда
		ОткрытьФорму("Документ."+Зн);
	КонецЕсли;
КонецПроцедуры 


3. Делаем обычный журнал: ЖурналХ
4. У документа ДиспетчерВводаЖурналаХ выбираем журнал ЖурналХ
5. Изменяем тип журналаХ на общий.
Все.
Фича в том что журналХ становится общим, но, если с ним до этого был сопоставлен один и толко один вид документа, то при вводе нового документа в этом журнале будет вводиться только этот вид документа.

ps
(c) orefkov
  

1&&2&&3
Наверх
 
IP записан
 
Thor
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 82
Зарегистрирован: 12. Июля 2006
Re: Перехватить список документов в общем журнале
Ответ #3 - 10. Августа 2006 :: 15:29
Печать  
Цитата:
Зачем?

Простая задача: Реализовать работу с документами одного вида в журнале с отбором, допустим, по автору. Чтобы в горячо любимой 1С-ке выполнить отбор в журнале, необходимо его сделать общим. При вводе нового документа пользователю показывается полный список всех документов, что ни ему, ни мне не нужно.
Мне известны два способа решения:
1. Настройка прав доступа "Ввод нового". В список видов документов попадают только виды с установленным правом. Этот способ применим в ограниченных случаях.
2. Способ, описанный многоуважаемым trad'ом. Тоже есть ограничения:
а) если используются несколько таких журналов, операцию нужно проделать для каждого из них. В модуле формы служебного документа нужно анализировать, из какого журнала инициирован ввод.
б) указанный баг мной использовался, но бесследно пропадал при некоторых операциях с конфигурацией (при объединении, например). Т.е. после каждого изменения нужно "на всякий случай" проверять настройки, что не есть удобно.

ИМХО, удобнее всего в форме журнала обзавестись предопределенной процедурой ПриВыбореВидаДокумента() либо реализовать вызов процедуры наподобие ВыдыДляВыбора().

Вы мне подскажите, если это реализумо, какой класс отвечает за вывод этого диалога (выбора вида), может быть, я сам чего-нибудь придумаю.
ИМХО очень полезная фишка была-бы.
  
Наверх
ICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Перехватить список документов в общем журнале
Ответ #4 - 10. Августа 2006 :: 15:48
Печать  
to Thor
Наверное, проще всего тебе перехватывать нажатие INSERT в форме журнала и обрабатывать, как тебе нужно.
  
Наверх
ICQ  
IP записан
 
DrACe
1c++ donor
1c++ power user
Отсутствует


1С++ любитель

Сообщений: 447
Местоположение: г. Новосибирск
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Перехватить список документов в общем журнале
Ответ #5 - 10. Августа 2006 :: 15:54
Печать  
vip писал(а) 10. Августа 2006 :: 15:48:
to Thor
Наверное, проще всего тебе перехватывать нажатие INSERT в форме журнала и обрабатывать, как тебе нужно.

а кнопка на панели инструментов? куда ее деть? избавиться от стандартной панели? а контекстное меню мыши?
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Перехватить список документов в общем журнале
Ответ #6 - 10. Августа 2006 :: 15:59
Печать  
DrACe писал(а) 10. Августа 2006 :: 15:54:
vip писал(а) 10. Августа 2006 :: 15:48:
to Thor
Наверное, проще всего тебе перехватывать нажатие INSERT в форме журнала и обрабатывать, как тебе нужно.

а кнопка на панели инструментов? куда ее деть? избавиться от стандартной панели? а контекстное меню мыши?

Контекстное меню - перехват правой кнопки.
Кнопка на панели - товарищ свои журналы рисует, так что убрать не проблема.
Меню "Действия" - сложней, но я для бесправных юзеров ввобще все меню убираю.
  
Наверх
ICQ  
IP записан
 
DrACe
1c++ donor
1c++ power user
Отсутствует


1С++ любитель

Сообщений: 447
Местоположение: г. Новосибирск
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Перехватить список документов в общем журнале
Ответ #7 - 11. Августа 2006 :: 02:59
Печать  
vip писал(а) 10. Августа 2006 :: 15:59:
DrACe писал(а) 10. Августа 2006 :: 15:54:
vip писал(а) 10. Августа 2006 :: 15:48:
to Thor
Наверное, проще всего тебе перехватывать нажатие INSERT в форме журнала и обрабатывать, как тебе нужно.

а кнопка на панели инструментов? куда ее деть? избавиться от стандартной панели? а контекстное меню мыши?

Контекстное меню - перехват правой кнопки.
Кнопка на панели - товарищ свои журналы рисует, так что убрать не проблема.
Меню "Действия" - сложней, но я для бесправных юзеров ввобще все меню убираю.

да это все понятно, но что тогда останется от 1С-ки?  Смех

надо ли так много для простой в общем-то вещи?
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Перехватить список документов в общем журнале
Ответ #8 - 11. Августа 2006 :: 03:57
Печать  
Thor писал(а) 10. Августа 2006 :: 15:29:
Тоже есть ограничения:
а) если используются несколько таких журналов, операцию нужно проделать для каждого из них. В модуле формы служебного документа нужно анализировать, из какого журнала инициирован ввод.
именно для каждого "ТАКОГО" журнала нужно сделать один "ТАКОЙ" вид документа. В этом нет ничего страшного и это не выглядит как огрвничение.
В модуле формы ничего анализировать не надо. Ведь док и журнал имеют отношение один-к-одному.

Thor писал(а) 10. Августа 2006 :: 15:29:
б) указанный баг мной использовался, но бесследно пропадал при некоторых операциях с конфигурацией (при объединении, например). Т.е. после каждого изменения нужно "на всякий случай" проверять настройки, что не есть удобно.
Неправда. При объединении, действие фичи никуда не пропадает (использую с 15 релиза). пропадает только в одном случае - если "потрогать" какие-либо параметры вида документа. Об этом надо знать, не трогать и проблем не будет.
  

1&&2&&3
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Перехватить список документов в общем журнале
Ответ #9 - 11. Августа 2006 :: 04:00
Печать  
Цитата:
да это все понятно, но что тогда останется от 1С-ки?   

надо ли так много для простой в общем-то вещи?

А для некоторых случаев (для фронт-офиса, например) и не надо много оставлять от 1С Подмигивание
  
Наверх
ICQ  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Перехватить список документов в общем журнале
Ответ #10 - 11. Августа 2006 :: 05:21
Печать  
Если это нужно только для отбора в простом журнале, то (ИМХО) лучше уж тогда просто многострочную часть простого журнала заменить на табличное поле. Тут еще добавится и такая вкусность, как произвольная сортировка журнала.
  

FormEx developer
Наверх
www  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Перехватить список документов в общем журнале
Ответ #11 - 11. Августа 2006 :: 05:28
Печать  
Цитата:
Если это нужно только для отбора в простом журнале, то (ИМХО) лучше уж тогда просто многострочную часть простого журнала заменить на табличное поле. Тут еще добавится и такая вкусность, как произвольная сортировка журнала.

А чем туда данные загонять? Запросом?
А скорость работы как?
  
Наверх
ICQ  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Перехватить список документов в общем журнале
Ответ #12 - 11. Августа 2006 :: 05:46
Печать  
vip писал(а) 11. Августа 2006 :: 05:28:
Цитата:
Если это нужно только для отбора в простом журнале, то (ИМХО) лучше уж тогда просто многострочную часть простого журнала заменить на табличное поле. Тут еще добавится и такая вкусность, как произвольная сортировка журнала.

А чем туда данные загонять? Запросом?
А скорость работы как?

Запросом, конечно. Скорость работы зависит от того, какой запрос сделаешь. У меня работает не медленней, чем обычный журнал.
  

FormEx developer
Наверх
www  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Перехватить список документов в общем журнале
Ответ #13 - 11. Августа 2006 :: 05:51
Печать  
Цитата:
Скорость работы зависит от того, какой запрос сделаешь.

А если мне нужны документы за несколько лет?
Сомневаюсь я про удобство и скорость.
Вот произвольный отбор, это конечно хорошо.
  
Наверх
ICQ  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Перехватить список документов в общем журнале
Ответ #14 - 11. Августа 2006 :: 06:04
Печать  
vip писал(а) 11. Августа 2006 :: 05:51:
Цитата:
Скорость работы зависит от того, какой запрос сделаешь.

А если мне нужны документы за несколько лет?
Сомневаюсь я про удобство и скорость.
Вот произвольный отбор, это конечно хорошо.

Ты в курсе, что Табличное поле выбирает запросом не все записи, а только те, которые надо отобразить в данный момент? Объем всей выборки на скорость не влияет.
Я ж не просто так советую. У меня такой журнал уже полгода работает. Плюс еще несколько форм списков справочников по ТП заточены. И все чудненько работает.
Хотя, наверное, немного лукавлю. Тормоза все же возникают, т.к. от штатной-то многострочной части не избавится и время на ее заполнение, пусть даже она невидима, все же тратится.
  

FormEx developer
Наверх
www  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать