Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: 1С для программиста

  Все выпуски  

RFpro.ru: 1С для программиста


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Кочетков Василий [Vasiliy83]
Статус: Профессионал
Рейтинг: 1985
∙ повысить рейтинг »
Владимир Лазурко
Статус: Профессор
Рейтинг: 961
∙ повысить рейтинг »
Тимошенко Дмитрий
Статус: Практикант
Рейтинг: 537
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / 1С:Предприятие для программиста

Номер выпуска:1188
Дата выхода:05.09.2012, 06:30
Администратор рассылки:Владимир Лазурко (Профессор)
Подписчиков / экспертов:89 / 40
Вопросов / ответов:1 / 1

Консультация # 186577: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: 1С 7.7 Вин ХР У меня реализован запуск cmd с запуском "ПриНачалеРаботыСистемы()" Открытие последнего документа "Случай" Как реализовать по другому? Запуск 1. cmd с запуском Процедура1() Открытие последнего документа "Случай" Запус...


Консультация # 186577:

Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
1С 7.7 Вин ХР
У меня реализован запуск cmd с запуском "ПриНачалеРаботыСистемы()" Открытие последнего документа "Случай"
Как реализовать по другому?
Запуск 1. cmd с запуском Процедура1() Открытие последнего документа "Случай"
Запуск 2. cmd с запуском Процедура2() Открытие последнего документа "Пом"
Запуск 3. cmd с запуском Процедура3() Открытие последнего документа "Ситуация"
Можно вместо процедуры использовать Обработку()

Дата отправки: 02.09.2012, 06:00
Вопрос задал: Пресняков Владимир Иванович (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Владимир Лазурко (Профессор):

Здравствуйте, Пресняков Владимир Иванович!

Вот решение:

Нужно создать список документов конфигурации и установить пометки для каждого вида документов:

Код :
	// Заполним список видами документов конфигурации
	Для Индекс = 1 По Метаданные.Документ() Цикл
		Идентификатор = Метаданные.Документ(Индекс).Идентификатор;  // То, как документ представлен в конфигурации
		Синоним       = Метаданные.Документ(Индекс).Синоним;        // То, что видит пользователь в диалогах
		
		// Если синоним не указан разработчиком, такие документы пометим в списке "!"
		Если СокрЛП(Синоним) = "" Тогда
			Синоним = Идентификатор + " !";
		КонецЕсли;
		
		СписокОткрываемыхДокументов.ДобавитьЗначение(Идентификатор, Синоним);
	КонецЦикла;

Чтобы открыть последний документ указанного вида, нужно сделать выборку, указав, что перебирать документы будем от последнего к первому, используя метод ОбратныйПорядок(1):
Код :
	Док = СоздатьОбъект("Документ." + ВидДокумента);
	Док.ОбратныйПорядок(1);
	Если Док.ВыбратьДокументы(,)=0 Тогда
		Сообщить("Нет ни одного документа вида " + ВидДокумента);
		Возврат;
	КонецЕсли;
	ОткрытьФорму(Док.ТекущийДокумент(),,-1);

Для удобства пометки документов будем сохранять, чтобы при следующем открытии не выбирать документы заново:
Код :
	СписокПометок = СоздатьОбъект("СписокЗначений");
	
	РазмСп = СписокОткрываемыхДокументов.РазмерСписка();
	Для Индекс = 1 по РазмСп цикл
		ЕстьПометка = СписокОткрываемыхДокументов.Пометка(Индекс);
		Если ЕстьПометка = 1 тогда
			Значение = СписокОткрываемыхДокументов.ПолучитьЗначение(Индекс, Представление);
			СписокПометок.ДобавитьЗначение(Значение, Представление);
		КонецЕсли;
	КонецЦикла;
	СохранитьЗначение("СписокПометокДокументов", ЗначениеВСтрокуВнутр(СписокПометок));

... и при открытии обработки восстанавливать сохраненные пометки:
Код :
	СписокПометок = ЗначениеИзСтрокиВнутр(ВосстановитьЗначение("СписокПометокДокументов"));
	Если ТипЗначенияСтр(СписокПометок) = "СписокЗначений" Тогда
		Для Индекс = 1 По СписокПометок.РазмерСписка() Цикл
			СохраненнаяПометка = СписокПометок.ПолучитьЗначение(Индекс);
			Помеченныйдокумент = СписокОткрываемыхДокументов.НайтиЗначение(СохраненнаяПометка);
			СписокОткрываемыхДокументов.Пометка(ПомеченныйДокумент,1);
		КонецЦикла;
	КонецЕсли;


Теперь сделаем обёртку для всего этого.
Создаем новую обработку (готовую можно взять во вложении), называем её ОткрытиеДокументов.
На форму обработки помещаем элемент диалога Список (меню Вставить - Список) и в свойствах добавленного списка на вкладке Дополнительно устанавливаем пометку "Список с пометками".
изменяем кнопку "Сформировать", созданную системой: в свойствах кнопки на вкладке Общие, заголовок "Открыть последние", на вкладке Дополнительно в поле Формула пишем имя обработчика: ОткрытьДокументы()

Переключаемся на вкладку Модуль и заменяем сгенерированный системой текст на текст из Приложения.

В глобальном модуле, в конце процедуры ПриНачалеРаботыСистемы() допишем открытие этой обработки: ОткрытьФорму("Обработка.ОткрытиеДокументов");
Код :
Процедура ПриН
 ачалеРаботыСистемы()
	
	...
	
	ОткрытьФорму("Обработка.ОткрытиеДокументов");
	
КонецПроцедуры


Обработка при следующем открытии отметит повторно документы, выбранные в предыдущий раз.

Успехов!

Приложение:

Консультировал: Владимир Лазурко (Профессор)
Дата отправки: 04.09.2012, 06:36
Прикреплённый файл: посмотреть » [2.7 кб]
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!



В избранное