Форум программистов, компьютерный форум, киберфорум
Наши страницы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
RedPirate
22 / 22 / 0
Регистрация: 13.05.2011
Сообщений: 197
1

Не получается скопировать выделенные строчки из справочника "Сотрудники" в форму "Выбор"

13.05.2011, 14:47. Просмотров 2462. Ответов 11
Метки нет (Все метки)

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

Есть форма "Выбор" с табличной частью и кнопкой. При нажатии на кнопку открывается справочник "Сотрудники". Из этого справочника выбирается нужный сотрудник и переносится в форму "Выбор" двойныйм щелчком мыши(или нажатием Enter, не важно).
Проблема в следующем: Не получается скопировать выделенные строчки из справочника "Сотрудники" в форму "Выбор". Как лучше это сделать? ЧТо использовать?

Вот что я пробовал делать, но эта процедура не работает:
1C
1
2
3
4
5
6
7
8
9
Процедура Подбор(ВыбраннаяСтрока)
    ФормаПодбора = Справочники.Сотрудники.ПолучитьФормуСписка(); 
    ФормаПодбора.Открыть();
    ФормаПодбора.РежимВыбора = Истина;
    ФормаПодбора.ЗакрыватьПриВыборе = Ложь;
    ФормаПодбора.МножественныйВыбор = Истина;
    НовСтрока = ЭтаФорма.СписокСотрудников.Добавить();
    НовСтрока.Сотрудник = ВыбраннаяСтрока;
КонецПроцедуры
Не получается скопировать данные.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2011, 14:47
Ответы с готовыми решениями:

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

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

1С 8.2 Розница - "Текущая цена розницы", "Остаток" в форме элемента "Номенклатура"
Всем добрый день! Нужна помощь. В Форму элемента "Номенклатура" нужно...

Для заданого 0<=n<=200.Расматриваемого как возраст человека,вывести фразу вида: "Мне 21 год", "Мне 32 года", "мне 12 лет".
МОЙ ВОЗРАСТ. Для заданого 0&lt;=n&lt;=200.Расматриваемого как возраст...

Кто может поделиться конфигурацией и базой для "общепита" или "ресторана", хочу потестить
Кто может поделиться конфигурацией и базой для 1с предприятие общепит или...

11
Dethmontt
Модератор
Эксперт 1С
2617 / 2417 / 407
Регистрация: 10.03.2011
Сообщений: 8,595
Записей в блоге: 1
Завершенные тесты: 1
13.05.2011, 15:32 2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
Процедура кпПодбор(Подбор) 
   ФормаПодбора = Документы.ЗарплатаКВыплате.ПолучитьФормуВыбора("ФормаСписка"); 
   ФормаПодбора.ЗакрыватьПриВыборе = Ложь; 
   ФормаПодбора.Открыть(); 
КонецПроцедуры
 
Процедура ОбработкаВыбора(ЗначениеВыбора, Источник)
    Если ТипЗнч(ЗначениеВыбора) = Тип("ДокументСсылка.ЗарплатаКВыплате") Тогда
        Строчка = табзнач.Добавить(); //Где таб знач моя таблица значений на форме
        Строчка.номе = ЗначениеВыбора.Номер;
        Строчка.ведом = ЗначениеВыбора.ссылка;
    конецЕсли;  
КонецПроцедуры
0
RedPirate
22 / 22 / 0
Регистрация: 13.05.2011
Сообщений: 197
13.05.2011, 17:22  [ТС] 3
Написал вот что, однако всё равно не добавляет. ЧТо может быть неправильно?

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Процедура Подбор(Кнопка)
    ФормаПодбора = Справочники.Сотрудники.ПолучитьФормуВыбора("ФормаСписка");
    ФормаПодбора.РежимВыбора = Истина;
    ФормаПодбора.ЗакрыватьПриВыборе = Ложь;
    ФормаПодбора.МножественныйВыбор = Истина;
    ФормаПодбора.Открыть();     
КонецПроцедуры
 
Процедура ТабличноеПолеОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    //СтандартнаяОбработка = Ложь;
        Если ТипЗнч(ВыбранноеЗначение) = Тип("Справочники.Сотрудники") Тогда
            Строчка = ЭтаФорма.ТабличноеПоле.Добавить();
            Строчка.номе.Сотрудник = ВыбранноеЗначение.номе;
            Строчка.ведом = ВыбранноеЗначение.ссылка;
 
        КонецЕсли; 
КонецПроцедуры
Можно подробнее узнать вот об этом моменте?
1C
1
2
3
4
Если ТипЗнч(ЗначениеВыбора) = Тип("ДокументСсылка.ЗарплатаКВыплате") Тогда
                Строчка = табзнач.Добавить(); //Где таб знач моя таблица значений на форме
                Строчка.номе = ЗначениеВыбора.Номер;
                Строчка.ведом = ЗначениеВыбора.ссылка;
0
fimbulwinter
308 / 308 / 1
Регистрация: 16.01.2011
Сообщений: 1,073
14.05.2011, 00:48 4
в открываемой форме не хватает метода ОповеститьОВыборе
0
Dethmontt
Модератор
Эксперт 1С
2617 / 2417 / 407
Регистрация: 10.03.2011
Сообщений: 8,595
Записей в блоге: 1
Завершенные тесты: 1
14.05.2011, 17:41 5
Убери свое "Если ТипЗнч(ВыбранноеЗначение) = Тип(Справичники.Сотрудники) Тогда"

Добавлено через 27 секунд
Убири совсем это условие

Добавлено через 52 секунды
Можно и по желанию добавить метод ОповеститьОВыборе(), это уже по желанию
0
RedPirate
22 / 22 / 0
Регистрация: 13.05.2011
Сообщений: 197
16.05.2011, 12:34  [ТС] 6
Какая то фигня у меня получается, так и не работает. Обработку выбора надо создавать в табличном поле? Или в поле ввода?
Вопрос, надо создавать какие то реквизиты во внешней обработке или табличные части? А то я создал форму и на ней табличну часть и всё.

Добавлено через 16 минут
Я добабавил табличную часть и в неё реквизит. Реквизит связал со справочником "Сотрудники".
Обработку выбора создал в табличном поле.

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Процедура Подбор(Кнопка)
    ФормаПодбора = Справочники.Сотрудники.ПолучитьФормуВыбора("ФормаСписка");
    ФормаПодбора.РежимВыбора = Истина;
    ФормаПодбора.ЗакрыватьПриВыборе = Ложь;
    ФормаПодбора.МножественныйВыбор = Истина;
    ФормаПодбора.Открыть();     
КонецПроцедуры
 
Процедура ТабличноеПолеОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    Строчка = Сотрудники.Добавить();
    Строчка.Сотрудник = ВыбранноеЗначение;
    ЭлементыФормы.Сотрудники.ТекущаяСтрока = Строчка; 
 
КонецПроцедуры
В чём может быть ошибка?
0
fimbulwinter
308 / 308 / 1
Регистрация: 16.01.2011
Сообщений: 1,073
16.05.2011, 12:43 7
конфа типовая или самописка? можешь на мыло кинуть?
1
RedPirate
22 / 22 / 0
Регистрация: 13.05.2011
Сообщений: 197
16.05.2011, 12:58  [ТС] 8
Я пробую на самописке(Так сказать на эксперементальной) она маленькая там только пара справочников. А вообще всё это надо будет реализовать на типовой Бухгалтерия предприятия 2.0 с платформой 8.1
Да, могу скинуть.
0
fimbulwinter
308 / 308 / 1
Регистрация: 16.01.2011
Сообщений: 1,073
16.05.2011, 13:58 9
на mogul13@mail.ru
1
RedPirate
22 / 22 / 0
Регистрация: 13.05.2011
Сообщений: 197
16.05.2011, 15:40  [ТС] 10
Выкладываю код может кому нибудь понадобиться:
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
//Это процедура кнопки на "ФормеПодбора", при нажатии на кнопку вызывается форма справочника "Сотрудники".
 
Процедура ДействияФормыПодбор(Кнопка)
    ФормаПодбора = Справочники.Сотрудники.ПолучитьФормуВыбора("ФормаСписка", ЭтаФорма);
    ФормаПодбора.РежимВыбора = Истина;
    ФормаПодбора.ЗакрыватьПриВыборе = Ложь;
    ФормаПодбора.МножественныйВыбор = Истина;
    ФормаПодбора.Открыть(); 
КонецПроцедуры
 
 
//Процедура выбора сотрудника из справочника "Сотрудники" на "ФормуПодбора".
 
Процедура ОбработкаВыбора(ЗначениеВыбора, Источник)
    
        Для каждого ЭлементМассива Из ЗначениеВыбора Цикл
            Дубль = Сотрудники.Найти(ЭлементМассива, "Сотрудник"); 
            Если Дубль = Неопределено Тогда
                
                Строчка = Сотрудники.Добавить();
                Строчка.Сотрудник = ЭлементМассива;
                
            Иначе
                
                ЭлементыФормы.Сотрудники.ТекущаяСтрока = Дубль; 
                
            КонецЕсли; 
        КонецЦикла; 
    
КонецПроцедуры
Огромное спасибо fimbulwinter за помощь!
0
Dethmontt
Модератор
Эксперт 1С
2617 / 2417 / 407
Регистрация: 10.03.2011
Сообщений: 8,595
Записей в блоге: 1
Завершенные тесты: 1
16.05.2011, 21:54 11
Тоже самое что я и написал, только более тупо)))
меня удивляет народ!!!!!!!!

Добавлено через 1 минуту
Надо разжевать и в рот положить!!!!
Сами ваще не хотят думать!!!!

Добавлено через 41 секунду
C
1
:wall::wall::wall:
0
RedPirate
22 / 22 / 0
Регистрация: 13.05.2011
Сообщений: 197
17.05.2011, 12:18  [ТС] 12
Не тоже самое, у тебя цикла не было и ты сказал вообще от туда убрать "Если".
Думать я могу и хочу! Дело в том что я о некоторых моментах могу незнать. Поэтому я попросил подсказать мне. Я же не сказал сделайте мне!
Кстати спасибо, что тоже постарался помочь! Очень тебе признателен!
0
17.05.2011, 12:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2011, 12:18

DVD-диском от книги "Профессиональная разработка в системе "1С: Предприятие 8" в двух томах"
Добрый день, товарищи! Есть такая книга: У кого есть от нее DVD? Поделитесь,...

Вывести фразу вида: "Мне 21 год", "Мне 32 года", "мне 12 лет"
МОЙ ВОЗРАСТ. Для заданого 0&lt;=n&lt;=200.Расматриваемого как возраст...

УТ 11.В документе "Заявка на расходование денежных средств" нет кнопки "Печать"!
Добрый день. Появилась необходимость сделать для Заявки на расходование...


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

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

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