Получение необходимого списка

1. NatalkaBal 28 23.05.17 15:33 Сейчас в теме
Добры день! Помогите в функции ПечатьМБ8() получить список где в НаименованиеПриказа встречается текст "МЦ".

//Данная функция провисана в общих модулях конфигурации, и изменять ее не желательно
Функция ПолучитьСписокПриказов() Экспорт 
	
	СписокПриказов = Новый СписокЗначений;
	
	Запрос = Новый Запрос;
	Запрос .Текст = 
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	УГН_ПриказОСоставеКомиссии.Наименование КАК НаименованиеПриказа,
	|	УГН_ПриказОСоставеКомиссии.Ссылка
	|ИЗ
	|	Справочник.УГН_ПриказОСоставеКомиссии КАК УГН_ПриказОСоставеКомиссии
	|ГДЕ
	|	УГН_ПриказОСоставеКомиссии.Действителен = ЛОЖЬ";
		
	СписокПриказов.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("НаименованиеПриказа"));
	
	Возврат СписокПриказов;
	
КонецФункции

//Эта же функция в модули внешней печатной формы
Функция ПечатьМБ8() 
	
	СписокПриказов = ПолучитьСписокПриказов();
	СписокПриказов.ОтметитьЭлементы("Список приказов на право подписи");
	
	Для лТИ =-СписокПриказов.Количество()  по -1 Цикл
		Элемент = СписокПриказов.Получить(-лТИ-1);
		Если НЕ Элемент.Пометка Тогда
			СписокПриказов.Удалить(Элемент);
		КонецЕсли;
	КонецЦикла;

Показать
По теме из базы знаний
Найденные решения
8. NatalkaBal 28 23.05.17 16:19 Сейчас в теме
Спасибо большое! Все получилось)

	спЗначений = Новый СписокЗначений();
	
	СписокПриказов = УГН_ПриказОСоставеКомиссии.ПолучитьСписокПриказов();
	Для каждого СтрокиСписка из СписокПриказов Цикл
		Если Найти(СтрокиСписка.Значение," МЦ") <> 0 Тогда
			спЗначений.Добавить(СтрокиСписка.Значение);
		КонецЕсли;
	КонецЦикла;
	
	спЗначений.ОтметитьЭлементы("Список приказов на право подписи");
	
	Для лТИ =-спЗначений.Количество()  по -1 Цикл
		
		Элемент = спЗначений.Получить(-лТИ-1);
		Если НЕ Элемент.Пометка Тогда
			спЗначений.Удалить(Элемент);
		КонецЕсли; 
		
	КонецЦикла;

Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. BackinSoda 23.05.17 15:39 Сейчас в теме
А в этом интересном цикле нельзя проверить наименование в элементе на наличие "МЦ" ?
Из справки:
Если Найти(Сотрудник.Имя, "Борис") > 0 Тогда
    Сообщить(Сотрудник.Имя + " таб. №" + Сотрудник.Код);
КонецЕсли;
3. NatalkaBal 28 23.05.17 15:51 Сейчас в теме
(2)
(2)
Если Найти(Сотрудник.Имя, "Борис") > 0 Тогда
Сообщить(Сотрудник.Имя + " таб. №" + Сотрудник.Код);
КонецЕсли;


Не получается, Поле объекта не обнаружено (НаименованиеПриказа)
	НужныйПриказ = Ложь;
	Для лТИ =-СписокПриказов.Количество()  по -1 Цикл
		Если Найти(СписокПриказов.НаименованиеПриказа, "МЦ") > 0 Тогда
			НужныйПриказ = Истина
		КонецЕсли;
		
		Элемент = СписокПриказов.Получить(-лТИ-1);
		Если НЕ Элемент.Пометка и НужныйПриказ = Ложь Тогда
			СписокПриказов.Удалить(Элемент);
		КонецЕсли;
	КонецЦикла;
Показать
4. NatalkaBal 28 23.05.17 15:53 Сейчас в теме
Тут еще проблема в том чтобы и для выбора отметок, выходил уже список с наличием в наименование слова МЦ. Сам приказ называется Приказ от 03.02.2017 № 123 МЦ
5. BackinSoda 23.05.17 15:53 Сейчас в теме
Проверяйте у
Элемент = СписокПриказов.Получить(-лТИ-1);
его Значение
6. NatalkaBal 28 23.05.17 15:58 Сейчас в теме
(5)
Элемент = СписокПриказов.Получить(-лТИ-1);


Приказ от 03.02.2017 № 123 МЦ его значение
7. BackinSoda 23.05.17 16:00 Сейчас в теме
  Для лТИ =-СписокПриказов.Количество()  по -1 Цикл
        Элемент = СписокПриказов.Получить(-лТИ-1);
        Если Найти(Элемент.Значение,"МЦ") = 0 Тогда
            СписокПриказов.Удалить(Элемент);
        КонецЕсли;
    КонецЦикла;
8. NatalkaBal 28 23.05.17 16:19 Сейчас в теме
Спасибо большое! Все получилось)

	спЗначений = Новый СписокЗначений();
	
	СписокПриказов = УГН_ПриказОСоставеКомиссии.ПолучитьСписокПриказов();
	Для каждого СтрокиСписка из СписокПриказов Цикл
		Если Найти(СтрокиСписка.Значение," МЦ") <> 0 Тогда
			спЗначений.Добавить(СтрокиСписка.Значение);
		КонецЕсли;
	КонецЦикла;
	
	спЗначений.ОтметитьЭлементы("Список приказов на право подписи");
	
	Для лТИ =-спЗначений.Количество()  по -1 Цикл
		
		Элемент = спЗначений.Получить(-лТИ-1);
		Если НЕ Элемент.Пометка Тогда
			спЗначений.Удалить(Элемент);
		КонецЕсли; 
		
	КонецЦикла;

Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот