INFOSTART EVENT 2018 EDUCATION

Второй тур голосования за доклады.
Окончание 5 сентября.

Шамсутдинов Артем | Руководитель проектов автоматизации | ООО «ОйлГИС»

«Советы бывалого: практика внедрения 1С:ERP в машиностроении.»

1) Предпосылки внедрения. Почему не 1С:УПП 2) Выбор партнера (франчайзи), а так ли он необходим? 3) Работа только на типовом функционале. Какого это? 4) Внедрение складского учета и интеграция с торговым оборудованием 5) Диспетчеризация производства. Разработка АРМов, подключение POS-терминалов. Что? Где? Когда? 6) Как учитывать инструментальное оснащение в производстве? 7) Как узнать все потребности в материалах по всем заказам и планируемым заявкам в один клик? 8) Автоматизация простого документооборота и системы оповещений (SMS, E-Mail) в 1С:ERP через расширение конфигурации.

1. Johney20 13.06.18 12:55 Сейчас в теме

Открыть форм выбор справочника

Реквизит формы "База приемник" - тип Список значений (тип значения - Справочник "Информационные базы"), то есть приемником может быть как одна база, так и несколько. Необходимо, чтобы при выборе базы источника открывался мой список значений и по нажатию кнопки "Подбор" открывалась форма выбора справочника "Информационные базы". Пока у меня происходит так: 1.Открывается форма выбора справочника, потом поверх открывается мой список значений и при подборе или выборе снова открывается форма выбора. В общем, бред как-то.. (Скрин приложила)

Вот мой код:

Обработка:
&НаКлиенте
Процедура БазаПриемникНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	//СтандартнаяОбработка = Ложь;
	
	ПараметрыФормы = Новый Структура;
	ПолучитьСписокДоступныхИнформационныхБаз(ПараметрыФормы);	
	
	Оповещение = Новый ОписаниеОповещения("ОбработатьЗакрытиеФормыВыбораБазыПриемника", ЭтаФорма);
	
	ОткрытьФорму("Справочник.ИнформационныеБазы.ФормаВыбора",ПараметрыФормы,Элемент,,ВариантОткрытияОкна.ОтдельноеОкно,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
		
КонецПроцедуры
Показать


Справочник:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка=Ложь)
	Отбор = Параметры.Отбор;
	Параметры.МножественныйВыбор = Истина;
	Если ЗначениеЗаполнено(Отбор) Тогда
		ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
		ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
		ЭлементОтбора.Использование = Истина;
		ЭлементОтбора.ПравоеЗначение = Отбор;
	КонецЕсли;
КонецПроцедуры
Показать
Прикрепленные файлы:
Ответы
Сортировка: Древо
2. antz 13.06.18 13:01 Сейчас в теме
Ну а почему бы сначала не открываться форме выбора справочника, если вы сами говорите ей открываться в процедуре НачалоВыбора?
3. Johney20 13.06.18 13:02 Сейчас в теме
4. antz 13.06.18 13:03 Сейчас в теме
(3) вам нужно ограничить выбор базы?
5. Johney20 13.06.18 13:17 Сейчас в теме
(4) да. То есть в форме выбора справочника "Информационные Базы" я должна видеть только те, которые есть в параметрах отбора.
6. necropunk 5 13.06.18 13:41 Сейчас в теме
Стандартную обработку отключайте при использовании своей формы выбора.
10. antz 13.06.18 13:58 Сейчас в теме
(6) ей нужно заполнять список значений. То есть, чтобы при начале выбора открывалась форма списка значений, а при добавлении в список - когда открывается форма выбора из справочника, в ней был отбор. Я как-то не знаю, как это сделать.
7. necropunk 5 13.06.18 13:42 Сейчас в теме
И если вы список баз передаете в отбор - почему в отборе вид сравнения - Равно?
8. Johney20 13.06.18 13:52 Сейчас в теме
(7) это я уже заменила на ВСписке. Результат не меняется все равно
9. Johney20 13.06.18 13:52 Сейчас в теме
Стандартную обработку так же отключаю.
11. independ 110 13.06.18 20:54 Сейчас в теме
Можно использовать стандартный диалог Списка значений с отметкой, если данный список небольшой, то вполне работает, вот пример
&НаКлиенте
Процедура Подбор(Команда)
	СписокКассККМ=Новый СписокЗначений;
	ЗаполнитьСписокКассККМ(СписокКассККМ);
	Для каждого КассаККМ из СписокКассККМ Цикл
		Если КассыККМ.НайтиПоЗначению(КассаККМ.Значение)<>Неопределено Тогда
			КассаККМ.Пометка=Истина;
		КонецЕсли;	
	КонецЦикла;	
	Если СписокКассККМ.ОтметитьЭлементы("Выбор Касс ККМ") Тогда
		КассыККМ.Очистить();
		Для Каждого КассаККМ Из СписокКассККМ Цикл
			Если КассаККМ.Пометка Тогда
				КассыККМ.Добавить(КассаККМ.Значение);
			КонецЕсли;
		КонецЦикла;
	КонецЕсли;
КонецПроцедуры

&НаСервереБезКонтекста
Процедура ЗаполнитьСписокКассККМ(СписокКассККМ) 
	Запрос=Новый Запрос;
	Запрос.Текст="ВЫБРАТЬ
	|	КассыККМ.Ссылка КАК Ссылка
	|ИЗ
	|	Справочник.КассыККМ КАК КассыККМ";
	Выборка=Запрос.Выполнить().Выбрать();
	Пока Выборка.Следующий() Цикл
		СписокКассККМ.Добавить(Выборка.Ссылка);
	КонецЦикла;	
КонецПроцедуры	
Показать
Прикрепленные файлы:
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Бизнес-аналитик 1С
Санкт-Петербург
Полный день

Программист 1С
Москва
зарплата от 120 000 руб. до 150 000 руб.
Полный день

Ведущий программист
Москва
зарплата от 130 000 руб. до 200 000 руб.
Полный день

Программист 1С
Одесса (Украина)
зарплата от 40 000 руб.
Полный день

Менеджер по продажам проектов 1С
Санкт-Петербург
Полный день