Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
13 Авг 2020, 05:33
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Помогите с кодом (отбор по регистру)  (Прочитано 203 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Алексей_1985_06

  • ***
  • Сообщений: 116
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2019-09-01
  • Сайт: 
  • Профессия: Ученик 1С
Всем привет! Знатоки, подскажите как реализовать следующие:
Есть регистр сведений "ПослужнойСписок" в нем есть реквизит должность (ссылка на справочник "ШтатныеДолжности"), необходимо при выборе должности выводить только те должности, которые не заняты...
Помогите кто знает как !!!


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

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

КонецЕсли;
КонецПроцедуры


Оффлайн antoneus

  • ****
  • Сообщений: 334
  • РЕПУТАЦИЯ: 86
  • КПД: 26%
  • Регистрация: 2018-11-22
  • Сайт: 
  • Профессия: Программист 1С
Можно в событии НачалоВыбора ставить СтандартнаяОбработка = Ложь и открывать форму выбора должностей с установленным отбором.

Оффлайн Алексей_1985_06

  • ***
  • Сообщений: 116
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2019-09-01
  • Сайт: 
  • Профессия: Ученик 1С
Можно в событии НачалоВыбора ставить СтандартнаяОбработка = Ложь и открывать форму выбора должностей с установленным отбором.

antoneus Можете подсказать (учусь пока, не сталкивался ещё с подобным), сделал данную процедуру в модуле формы записи регистра сведений (реквизит "должность")  но ничего не получается, что нужно подправить? Сейчас форма выбора вообще не открывается....:dfbsdfbsdf::dfbsdfbsdf::dfbsdfbsdf:

&НаКлиенте
Процедура ДолжностьНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;
    ДолжностьНачалоВыбораНаСервере();

КонецПроцедуры

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

РезультатЗапроса = Запрос.Выполнить().Выбрать();
Список = Новый СписокЗначений;

Пока РезультатЗапроса.Следующий() Цикл
Список.Добавить(РезультатЗапроса);
КонецЦикла;

КонецПроцедуры

Оффлайн antoneus

  • ****
  • Сообщений: 334
  • РЕПУТАЦИЯ: 86
  • КПД: 26%
  • Регистрация: 2018-11-22
  • Сайт: 
  • Профессия: Программист 1С
Ну, примерно так:

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

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

Оффлайн Алексей_1985_06

  • ***
  • Сообщений: 116
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2019-09-01
  • Сайт: 
  • Профессия: Ученик 1С
Ну, примерно так:

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

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

antoneus ОГРОМНОЕ ВАМ СПАСИБО!!! Все работает четко, как надо! :zebzdr::zebzdr::zebzdr:


Теги:
 

Помогите выразить код Объект.Наименование = Объект.Подразделение + " " + Объект.Должность + " " + Объект.ФизическоеЛицо через строки.

Автор LedgikРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 1064
Последний ответ 05 Мар 2019, 19:28
от Ledgik
Помогите срочно!! В вкладке "Сервис"--> "Журнал регистрации" отражаются все операции как можно определить сделаны ли операции "задним числом" и как вычислить первоначальную информацию какой расчет поменял на другой?

Автор 2ronРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 6766
Последний ответ 24 Дек 2015, 15:34
от дфтын
Помогите правильно настроить справочник "Единицы измерения" и "Номенклатура"

Автор perminovandrРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 1248
Последний ответ 23 Янв 2019, 07:21
от Геннадий ОбьГЭС
На фото демонстрируется личная карточка сотрудника, но во столбце "ЗА ЯКИЙ ПЕРІОД " не показывает ничего, как это можно решить, помогите пожалуйста

Автор cBeginnerРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 9
Просмотров: 1549
Последний ответ 26 Июл 2018, 17:44
от alex0402
Помогите подобрать Back-office и Front-office

Автор avrnskРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 7182
Последний ответ 07 Сен 2010, 12:01
от mohock

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
82 Сообщений
LexaK
30 Сообщений
ToryFree ToryFree
28 Сообщений
antoneus antoneus
27 Сообщений
alexandr_ll
26 Сообщений
Алексей_1985_06
17 Сообщений
DmitriyF DmitriyF
17 Сообщений
BuhRust
14 Сообщений
Алексей Рожков Алексей Рожков
12 Сообщений
judnikov
10 Сообщений

* Кто онлайн

  • Точка Гостей: 156
  • Точка Скрытых: 0
  • Точка Пользователей: 1
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal