Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.80/20: Рейтинг темы: голосов - 20, средняя оценка - 4.80
Fenlou
1 / 1 / 2
Регистрация: 11.03.2014
Сообщений: 480
1

Создать произвольную форму для справочника "Сотрудники"

29.04.2014, 11:58. Просмотров 3988. Ответов 22
Метки нет (Все метки)

Создать произвольную форму для справочника "Сотрудники". На форму списка добавить кнопку, при нажатии на которую будет вызываться созданная форма. На созданную произвольную форму добавить "ПолеВвода" для выбора элемента из справочника "Сотрудники". На событие "ПриИзменении" поля ввода написать процедуру. В текст процедуры перетащить мышкой Запрос или Запрос с параметром и воспользовавшись конструктором запросов создать запрос, позволяющий показать все назначения данного сотрудника на какие-либо должности. Все должности из запроса вывести в окне сообщений.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2014, 11:58
Ответы с готовыми решениями:

Для документа "ПродажаТоваров" на форму списка добавить "ПолеВвода"
Для документа "ПродажаТоваров" на форму списка добавить "ПолеВвода" с типом...

На форму списка товаров добавить "ТабличноеПоле" с типом значений "ДеревоЗначений"
1С.8.0 На форму списка товаров добавить "ТабличноеПоле" с типом значений "ДеревоЗначений". При...

Не получается скопировать выделенные строчки из справочника "Сотрудники" в форму "Выбор"
Здравствуйте! У меня опыта работы с 1С мало поэтому хотел попросить помощи у более опытных коллег....

ЗуП -> добавление картинки в форму списка "справочника сотрудники"
Здравствуйте уважаемые программисты . приму любой совет от знающих людей . стоит задача в ЗуП...

Cоздать ссылку на реквизит "Наименование" справочника "Специалисты" из справочника "ЗаявкаНаОбучениеКлиентов"
Пожалуйста, подскажите. Необходимо создать ссылку на реквизит "Наименование" справочника...

22
Streletz
287 / 225 / 61
Регистрация: 07.04.2014
Сообщений: 1,476
29.04.2014, 12:02 2
2 раза щёлкнуть на справочнике. В открывшемся окне на вкладке нажать кнопку "Добавить" или просто нажать Insert на клавиатуре. Откроется конструктор формы справочника и можно творить...
0
Fenlou
1 / 1 / 2
Регистрация: 11.03.2014
Сообщений: 480
29.04.2014, 12:07  [ТС] 3
1C
1
2
3
Процедура ОткрытьПроизвольнуюФормуНажатие(Элемент)
    // Вставить содержимое обработчика.
КонецПроцедуры
1C
1
2
3
Процедура ПолеВвода1ПриИзменении(Элемент)
    // Вставить содержимое обработчика.
КонецПроцедуры
Добавлено через 26 секунд
Это я сделал, все кнопки добавил. Мне нужен код!
0
Streletz
287 / 225 / 61
Регистрация: 07.04.2014
Сообщений: 1,476
29.04.2014, 12:32 4
Цитата Сообщение от Fenlou Посмотреть сообщение
Мне нужен код!
Если нужен код, то пишите код. В чём проблема?
0
Fenlou
1 / 1 / 2
Регистрация: 11.03.2014
Сообщений: 480
29.04.2014, 12:41  [ТС] 5
Цитата Сообщение от Streletz Посмотреть сообщение
Если нужен код, то пишите код. В чём проблема?
Я и написал далее
0
Streletz
287 / 225 / 61
Регистрация: 07.04.2014
Сообщений: 1,476
29.04.2014, 13:03 6
Цитата Сообщение от Fenlou Посмотреть сообщение
Я и написал далее
Заголовок и конец процедуры (одной и второй) я вижу. А, вот кода посередине, простите, по крайней мере, лично мне как-то совсем невидно.
Комментарий
1C
1
// Вставить содержимое обработчика.
не в счёт.
0
Fenlou
1 / 1 / 2
Регистрация: 11.03.2014
Сообщений: 480
30.04.2014, 13:27  [ТС] 7
Цитата Сообщение от Streletz Посмотреть сообщение
Заголовок и конец процедуры (одной и второй) я вижу. А, вот кода посередине, простите, по крайней мере, лично мне как-то совсем невидно
Щас

Добавлено через 4 минуты
1C
1
2
3
4
5
Процедура ОткрытьПроизвольнуюФормуНажатие(Элемент)
    Форма = Форма.ПолучитьФорму("Форма",Форма);
    Форма.Открыть();
    // Вставить содержимое обработчика.
КонецПроцедуры
Мне надо из "ФормаСписка" перейти в "Форма".

Добавлено через 3 минуты
Вот по запросу:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Процедура ПолеВвода1ПриИзменении(Элемент)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|   КадровоеПеремещение.Сотрудник,
|   КадровоеПеремещение.Должность
|ИЗ
|   Документ.КадровоеПеремещение КАК КадровоеПеремещение
|
|СГРУППИРОВАТЬ ПО
|   КадровоеПеремещение.Сотрудник,
|   КадровоеПеремещение.Должность";
 
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
 
Пока Выборка.Следующий() Цикл
 
    
 
КонецЦикла;
    // Вставить содержимое обработчика.
КонецПроцедуры
Добавлено через 2 минуты
вот данные файлы по лабораторной http://files.mail.ru/83D4A4AE021A4056A80614A029ED965A

Добавлено через 23 часа 50 минут
ну помогите)
0
SPR1TE89
21 / 21 / 3
Регистрация: 22.04.2014
Сообщений: 112
30.04.2014, 14:18 8
Fenlou,
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
ОчиститьСообщения();
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    КадровоеПеремещение.Дата,
                   |    КадровоеПеремещение.Сотрудник КАК Сотрудник,
                   |    КадровоеПеремещение.Должность
                   |ИЗ
                   |    Документ.КадровоеПеремещение КАК КадровоеПеремещение
                   |ГДЕ
                   |    КадровоеПеремещение.Сотрудник = &Сотрудник
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    КадровоеПеремещение.Сотрудник,
                   |    КадровоеПеремещение.Должность,
                   |    КадровоеПеремещение.Дата
                   |ИТОГИ ПО
                   |    Сотрудник";
    Если ЗначениеЗаполнено(ПолеВвода) Тогда                    
        Запрос.УстановитьПараметр("Сотрудник", ПолеВвода);
    Иначе
        Сообщить("не найден сотрудник");
        Возврат ;
    КонецЕсли;
    Результат = Запрос.Выполнить();
    ВыборкаПоСотруднику = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаПоСотруднику.Следующий() Цикл
        Сообщить("Сотрудник: " + ВыборкаПоСотруднику.Сотрудник);
        Выборка = ВыборкаПоСотруднику.Выбрать();
        Пока Выборка.Следующий() Цикл
            
            Сообщить("Принят: " +Формат(Выборка.Дата, "ДЛФ=Д") + " на должность: " + Выборка.Должность);
            
        КонецЦикла;
        
    КонецЦикла;
0
Fenlou
1 / 1 / 2
Регистрация: 11.03.2014
Сообщений: 480
04.05.2014, 14:35  [ТС] 9
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Процедура ПолеВвода1ПриИзменении(Элемент)
ОчиститьСообщения();
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    КадровоеПеремещение.Дата,
                   |    КадровоеПеремещение.Сотрудник КАК Сотрудник,
                   |    КадровоеПеремещение.Должность
                   |ИЗ
                   |    Документ.КадровоеПеремещение КАК КадровоеПеремещение
                   |ГДЕ
                   |    КадровоеПеремещение.Сотрудник = &Сотрудник
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    КадровоеПеремещение.Сотрудник,
                   |    КадровоеПеремещение.Должность,
                   |    КадровоеПеремещение.Дата
                   |ИТОГИ ПО
                   |    Сотрудник";
    Если ЗначениеЗаполнено(ПолеВвода1) Тогда                    
        Запрос.УстановитьПараметр("Сотрудник", ПолеВвода1);
    Иначе
        Сообщить("не найден сотрудник");
        Возврат ;
    КонецЕсли;
    Результат = Запрос.Выполнить();
    ВыборкаПоСотруднику = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаПоСотруднику.Следующий() Цикл
        Сообщить("Сотрудник: " + ВыборкаПоСотруднику.Сотрудник);
        Выборка = ВыборкаПоСотруднику.Выбрать();
        Пока Выборка.Следующий() Цикл
            
            Сообщить("Принят: " +Формат(Выборка.Дата, "ДЛФ=Д") + " на должность: " + Выборка.Должность);
            
        КонецЦикла;
        
    КонецЦикла;
    // Вставить содержимое обработчика.
КонецПроцедуры
{Справочник.Сотрудники.Форма.Форма(20,10)}: Процедура или функция с указанным именем не определена (ЗначениеЗаполнено)
Если <<?>>ЗначениеЗаполнено(ПолеВвода1) Тогда
0
duk337
2950 / 1762 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
04.05.2014, 17:08 10
Платформа?
0
Fenlou
1 / 1 / 2
Регистрация: 11.03.2014
Сообщений: 480
05.05.2014, 12:12  [ТС] 11
8.0
0
duk337
2950 / 1762 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
05.05.2014, 14:03 12
Смутно припоминаю, что ПустоеЗначение().
Т.е. вместо ЗначениеЗаполнено() использовать
1C
1
НЕ ПустоеЗначение()
вообще-то, есть синт.помощник, есть отладчик...
0
Fenlou
1 / 1 / 2
Регистрация: 11.03.2014
Сообщений: 480
05.05.2014, 16:55  [ТС] 13
не помогло
0
SPR1TE89
21 / 21 / 3
Регистрация: 22.04.2014
Сообщений: 112
05.05.2014, 17:05 14
Попробуй так:
Вместо этого кода
Цитата Сообщение от Fenlou Посмотреть сообщение
1C
1
2
3
4
5
6
Если ЗначениеЗаполнено(ПолеВвода1) Тогда 
Запрос.УстановитьПараметр("Сотрудник", ПолеВвода1);
   Иначе
Сообщить("не найден сотрудник");
   Возврат ;
КонецЕсли;
1C
1
 
вставь этот
1C
1
2
3
4
5
6
Если ПолеВвода1 <> Неопределено Тогда 
Запрос.УстановитьПараметр("Сотрудник", ПолеВвода1);
   Иначе
Сообщить("не найден сотрудник");
   Возврат ;
КонецЕсли;
Это обычная проверка на заполненность реквизита, чтоб ошибка не возникала когда формируется запрос.
1
Fenlou
1 / 1 / 2
Регистрация: 11.03.2014
Сообщений: 480
06.05.2014, 16:41  [ТС] 15
а какой код, чтоб открыть произвольную форму?
1C
1
2
3
Процедура ОткрытьПроизвольнуюФормуНажатие(Элемент)
    // Вставить содержимое обработчика.
КонецПроцедуры
Добавлено через 22 часа 12 минут
сделал
1C
1
2
3
4
5
6
Процедура ОткрытьПроизвольнуюФормуНажатие(Элемент)
Клиенты = Справочники.Сотрудники;
НовыйКлиент = Клиенты.СоздатьЭлемент();
НовыйКлиент.ПолучитьФорму("Форма").Открыть();
    // Вставить содержимое обработчика.
КонецПроцедуры
Добавлено через 58 секунд
Цитата Сообщение от Fenlou Посмотреть сообщение
запрос, позволяющий показать все назначения данного сотрудника на какие-либо должности. Все должности из запроса вывести в окне сообщений.
Как реализовать?
вот код, но он ничего не выгружает
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Процедура ПолеВвода1ПриИзменении(Элемент)
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    КадровоеПеремещение.Дата,
                   |    КадровоеПеремещение.Сотрудник КАК Сотрудник,
                   |    КадровоеПеремещение.Должность
                   |ИЗ
                   |    Документ.КадровоеПеремещение КАК КадровоеПеремещение
                   |ГДЕ
                   |    КадровоеПеремещение.Сотрудник = &Сотрудник
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    КадровоеПеремещение.Сотрудник,
                   |    КадровоеПеремещение.Должность,
                   |    КадровоеПеремещение.Дата
                   |ИТОГИ ПО
                   |    Сотрудник";
 Если ПолеВвода1 <> Неопределено Тогда 
Запрос.УстановитьПараметр("Сотрудник", ПолеВвода1);
   Иначе
Сообщить("не найден сотрудник");
   Возврат ;
КонецЕсли;
    Результат = Запрос.Выполнить();
    ВыборкаПоСотруднику = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаПоСотруднику.Следующий() Цикл
        Сообщить("Сотрудник: " + ВыборкаПоСотруднику.Сотрудник);
        Выборка = ВыборкаПоСотруднику.Выбрать();
        Пока Выборка.Следующий() Цикл
            
            Сообщить("Принят: " +Формат(Выборка.Дата, "ДЛФ=Д") + " на должность: " + Выборка.Должность);
            
        КонецЦикла;
        
        ТаблицаЗначений=Результат.Выгрузить();
    
ЭлементыФормы.ПолеВвода1.Значение = ТаблицаЗначений.Должность;
 
 
КонецЦикла;// Вставить содержимое обработчика.
КонецПроцедуры
0
SPR1TE89
21 / 21 / 3
Регистрация: 22.04.2014
Сообщений: 112
06.05.2014, 16:45 16
Fenlou, а данные точно заполнены? Кадровое перемещение на сотрудника делал?
0
Fenlou
1 / 1 / 2
Регистрация: 11.03.2014
Сообщений: 480
06.05.2014, 16:55  [ТС] 17
Кадровое перемещение делал, вот лаба, не знаю как прикрепить файлы. Вот ссылка http://files.mail.ru/BCC9948211F54047831F8B621ED6C44C
0
SPR1TE89
21 / 21 / 3
Регистрация: 22.04.2014
Сообщений: 112
06.05.2014, 17:04 18
Fenlou, Конечно у тебя на форме ПолеВвода1 - это строка, и когда ты что то там меняешь у тебя не выполняется запрос и поэтому ничего не показывает. Измени тип ПолеВвода1 на СправочникСсылка.Сотрудники и тогда все заработает.

И да
1C
1
2
3
 
ТаблицаЗначений=Результат.Выгрузить();
ЭлементыФормы.ПолеВвода1.Значение = ТаблицаЗначений.Должность;
Этот код убери ошибка будет, так как ты выгружаешь таблицу значений и пытаешься обратится к строке должность.
0
Fenlou
1 / 1 / 2
Регистрация: 11.03.2014
Сообщений: 480
06.05.2014, 19:30  [ТС] 19
Цитата Сообщение от SPR1TE89 Посмотреть сообщение
СправочникСсылка.Сотрудники и тогда все заработает.
Сделал и убрал, при запуске выделяется ПолеВвода синим цветом без текста

Добавлено через 58 секунд
и тут еще "все должности из запроса вывести в окне сообщений" как сделать?
0
SPR1TE89
21 / 21 / 3
Регистрация: 22.04.2014
Сообщений: 112
07.05.2014, 09:11 20
Fenlou, Ну так выбери сотрудника по которому тебе нужно получить все должности. В полеВвода1 есть кнопка выбора, на неё ткни
1
07.05.2014, 09:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2014, 09:11

Создать пользовательскую форму для справочника Курсы
11. Создать пользовательскую форму для справочника Курсы. a. перейти на закладку Формы, щелкнуть...

Как создать колонку "Цена" и "Количество" в справочнике номенклатура
Подскажите как создать колонку &quot;Цена&quot; и &quot;Количество&quot; в справочнике номенклатура?

8.3 Упр.приложение - Как "красивее" записать элемент справочника ?
Необходимо при записи нового элемента справочника создать др.элементы с указанием ссылки на этот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru