helpf.pro
Регистрация

v8: Спровочник

Bell
26.09.2011 19:15Прочитано: 1639
Здравствуйте
Поскажите как правильно организовать
1. Про открытии элемента справочника получаю периодические значения реквизитов
на дату (ДАТА реквизит формы элемента)
На форме этого элемента справочника есть реквизит ДАТА при его смене можно просматривать значения периодических реквизитов на дату
Все правильно работает
НО при сохранении элемента в ФОРМУ СПИСКАСПРАВОЧНИКА записывает (точнее спрашивает сохранять или нет ,если нет , то все получается правильно,если да, то значения реквизитов которые я просматривал последними), а хотелось бы получить на ДАТУ (последнии) в форму спискаСправочника

Может при сохранении как то обновлять Форму СпискаСправочника или еще что то.
Код 1C v 8.х
 Запрос = Новый 
Запрос("ВЫБРАТЬ
|*
|ИЗ
|РегистрСведений.РС_Сотрудники.СрезПоследних(&Дата,Сотрудник=&Сотрудник )");

Запрос.УстановитьПараметр("Дата",КонецДня(Дата) );
Запрос.УстановитьПараметр("Сотрудник",Ссылка);

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл

Отдел = Выборка.Отдел;
Должность = Выборка.Должность;
ДатаПриема = Выборка.ДатаПриема;
ДатаУвольнения = Выборка.ДатаУвольнения;

КонецЦикла;

Изменено 28.09.11 17:36:37 по причине: Разукрасил код
Yandex
Возможно, вас также заинтересует
Реклама на портале
Mokey
27.09.2011 14:52Ответ № 1
Можно поюзать метод ПриПолученииДанных поля списка справочника
Bell
28.09.2011 13:17Ответ № 2
Запросом все получилось, на я не могу его совместить обход по циклу выборки с предыдущим алгоритмом
Ошибка
Значение не является значением объектного типа Ячейки
Значение на является об
Код 1C v 8.х
 Процедура СправочникСписокПриПолученииДанных(Элемент, ОформленияСтрок)

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| *
|ИЗ
|РегистрСведений.РС_Сотрудники.СрезПоследних(&Дата, ) КАК РС_Сотрудник";

МассивСотрудники = Новый Массив;
Соответствие = Новый Соответствие;
//Для Каждого Оформление из ОформленияСтрок Цикл
// МассивСотрудники.Добавить(Оформление.ДанныеСтроки.Ссылка);
// Соответствие.Вставить(Оформление.ДанныеСтроки.Ссылка, Оформление);
//КонецЦикла;

Запрос.УстановитьПараметр("Дата", КонецДня(Дата) );

Выборка = Запрос.Выполнить().Выбрать();


// ВОТ ЭТУ ЧАСТЬ ПОДСТАИТЬ НЕ МОГУ

//Пока Выборка.Следующий() Цикл
//
// Соответствие.Получить(Выборка.Сотрудник.Ссылка).Ячейки.Подразделение.Значение = Выборка.Подразделение;
// Соответствие.Получить(Выборка.Сотрудник.Ссылка).Ячейки.Отдел.Значение = Выборка.Отдел;
// Соответствие.Получить(Выборка.Сотрудник.Ссылка).Ячейки.Должность.Значение = Выборка.Должность;
// Соответствие.Получить(Выборка.Сотрудник.Ссылка).Ячейки.ДатаПриема.Значение = Выборка.ДатаПриема;
// Соответствие.Получить(Выборка.Сотрудник.Ссылка).Ячейки.ДатаУвольнения.Значение = Выборка.ДатаУвольнения;

//КонецЦикла;



// ПОДСТАВИТЬ ОБХОД ВЫБОРКИ СЮДА

мОтображенныеГруппы.Очистить();

Для Каждого Оформление Из ОформленияСтрок Цикл
// делаем соответствие
МассивСотрудники.Добавить(Оформление.ДанныеСтроки.Ссылка);
Соответствие.Вставить(Оформление.ДанныеСтроки.Ссылка, Оформление);

// по коду не группируем
ПоказыватьГруппы = СправочникСписок.Порядок[мКодПорядка].Имя <> "Код";

Если ПоказыватьГруппы Тогда
Если СправочникСписок.Порядок[мКодПорядка].Имя = "Наименование" Тогда
Группа = ВРЕГ(Лев(СокрЛ(Оформление.ДанныеСтроки.Наименование), 1));
ИначеЕсли СправочникСписок.Порядок[мКодПорядка].Имя <> "Код" Тогда
Группа = Оформление.ДанныеСтроки[СправочникСписок.Порядок[мКодПорядка].Имя];
КонецЕсли;
КонецЕсли;

Если ПоказыватьГруппы И ПервыйСотрудник(Оформление.ДанныеСтроки.Ссылка, Группа) Тогда
Если ЗначениеЗаполнено(Группа) Тогда
Оформление.Ячейки.Группа.УстановитьТекст(Группа);
КонецЕсли;
Иначе
Оформление.Ячейки.Группа.Видимость = Ложь;
КонецЕсли;

Оформление.Ячейки.Наименование.УстановитьТекст(" " +Оформление.Ячейки.Наименование.Текст);

КонецЦикла;

Изменено 28.09.11 17:36:59 по причине: Разукрасил код
typeharley
28.09.2011 15:42Ответ № 3
Кто будет разукрашивать тексты синтаксиса???
E_Migachev
28.09.2011 17:39Ответ № 4
Разукрасил )
(2) так удалось вывести?
Bell
28.09.2011 18:55Ответ № 5
1. Запросом удалось выпести ДА все хорошо, если нет пунктат( 2 ) у обоих одна и та же процедура и я их не могу совместить

2. В процедуре СправочникСписокПриПолученииДанных(Элемент, ОформленияСтрок)
Есть вторая часть она показывает( разбивает) на части сотрудников и ставит заглавную букву алфивита перед группой (как в Бухгалтерии 2.0 спр. СотрудникиОрганизации), т.е образуется новяя ячейка (ГРУППА) вот с ней конфликт

т.е ВОТ ЭТУ ЧАСТЬ (обход результата запросав)
Код 1C v 8.х
 Пока Выборка.Следующий() Цикл

Соответствие.Получить(Выборка.Сотрудник.Ссылка).Ячейки.Подразделение.Значение = Выборка.Подразделение;
Соответствие.Получить(Выборка.Сотрудник.Ссылка).Ячейки.Отдел.Значение = Выборка.Отдел;
Соответствие.Получить(Выборка.Сотрудник.Ссылка).Ячейки.Должность.Значение = Выборка.Должность;
Соответствие.Получить(Выборка.Сотрудник.Ссылка).Ячейки.ДатаПриема.Значение = Выборка.ДатаПриема;
Соответствие.Получить(Выборка.Сотрудник.Ссылка).Ячейки.ДатаУвольнения.Значение = Выборка.ДатаУвольнения;

КонецЦикла;





ПОДСТАВИТЬ В




Код 1C v 8.х
 мОтображенныеГруппы.Очистить();

Для Каждого Оформление Из ОформленияСтрок Цикл
// делаем соответствие из ЗАПРОСА
МассивСотрудники.Добавить(Оформление.ДанныеСтроки.Ссылка);
Соответствие.Вставить(Оформление.ДанныеСтроки.Ссылка, Оформление);

// по коду не группируем
ПоказыватьГруппы = СправочникСписок.Порядок[мКодПорядка].Имя <> "Код";

Если ПоказыватьГруппы Тогда
Если СправочникСписок.Порядок[мКодПорядка].Имя = "Наименование" Тогда
Группа = ВРЕГ(Лев(СокрЛ(Оформление.ДанныеСтроки.Наименование), 1));
ИначеЕсли СправочникСписок.Порядок[мКодПорядка].Имя <> "Код" Тогда
Группа = Оформление.ДанныеСтроки[СправочникСписок.Порядок[мКодПорядка].Имя];
КонецЕсли;
КонецЕсли;

Если ПоказыватьГруппы И ПервыйСотрудник(Оформление.ДанныеСтроки.Ссылка, Группа) Тогда
Если ЗначениеЗаполнено(Группа) Тогда
Оформление.Ячейки.Группа.УстановитьТекст(Группа);
КонецЕсли;
Иначе
Оформление.Ячейки.Группа.Видимость = Ложь;
КонецЕсли;

Оформление.Ячейки.Наименование.УстановитьТекст(" " +Оформление.Ячейки.Наименование.Текст);

КонецЦикла;

Изменено 28.09.11 18:57:46
Bell
29.09.2011 15:03Ответ № 6
Вопрос закрыт!
Подсказка: Вы можете добавить любую страничку в Избранное щелкнув по значку
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.