Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 25.09.2013
Сообщений: 179
1

Управляемая форма.ОсновныеНачисленияСотрудникОбработкаВыбора

13.06.2014, 15:43. Просмотров 1205. Ответов 5
Метки нет (Все метки)

Вопрос по программированию управляемого интерфейса.Есть книжка "Сборник задач для подготовки к экзамену 1С Специалист по платформе !С:Предприятие 8".
К этой книжке прилагается база с примерами. У меня 1 вопрос.
В модуле формы написано:
1C
1
2
3
4
5
6
7
8
9
10
&НаКлиенте
Процедура ОсновныеНачисленияСотрудникОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    Если Не ТипЗнч(ВыбранноеЗначение) = Тип("СправочникСсылка.ФизическиеЛица") Тогда
        СтандартнаяОбработка = Ложь;
        
        Таблица = Элемент.Родитель.Родитель;
        Таблица.ТекущиеДанные.Сотрудник = ВыбранноеЗначение.Сотрудник;
        Таблица.ТекущиеДанные.Размер = ВыбранноеЗначение.ТарифнаяСтавка;
    КонецЕсли;
КонецПроцедуры
В самом начале идёт условие:
Если Не ТипЗнч(ВыбранноеЗначение) = Тип("СправочникСсылка.ФизическиеЛица")
Сразу вопрос. Откуда там взялась структура? Вроде бы как раз должен быть Тип("Справочник.ФизическиеЛица")?
Или где-то какая-то привязка устроена? Можете подсказать?
можете прокомментировать эти строчки?
1C
1
2
3
Таблица = Элемент.Родитель.Родитель;
        Таблица.ТекущиеДанные.Сотрудник = ВыбранноеЗначение.Сотрудник;
        Таблица.ТекущиеДанные.Размер = ВыбранноеЗначение.ТарифнаяСтавка;
Почему бы не написать:
1C
1
2
3
ТекущаяСтрока = Элементы.ОсновныеНачисления.ТекущаяСтрока;
        Таблица.ТекущиеДанные.Сотрудник = ТекущаяСтрока .Сотрудник;
        Таблица.ТекущиеДанные.Размер = ТекущаяСтрока .ТарифнаяСтавка;
Это ведь одно и то же или нет?
Сама база прикреплена в архиве
0
Вложения
Тип файла: zip 1Cv8.zip (272.0 Кб, 4 просмотров)
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.06.2014, 15:43
Ответы с готовыми решениями:

Управляемая форма. Не работает форма списка документа
Здравствуйте! Создал форму списка документа, сделал ее основной формой списка. В конфигураторе все...

Форма списка управляемая, базовые моменты
Возможно ли на управляемой форме списка создать новую табличную часть с данными. Или можно создать...

Управляемая форма обработки с компонентами, создаваемыми программно
Изучаю программирование. Что прочесть, чтобы сделать управляемую форму с компонентами, создаваемыми...

Отбор помеченных на удаление в иерархическом справочнике управляемая форма
Добрый день. Устанавливаю отбор в справочнике Пользователи, при открытии формыВыбора выдает только...

5
Модератор
Эксперт 1С
3025 / 2725 / 504
Регистрация: 10.03.2011
Сообщений: 10,388
Записей в блоге: 1
13.06.2014, 16:07 2
Лучший ответ Сообщение было отмечено Dimarik_1 как решение

Решение

Цитата Сообщение от Dimarik_1 Посмотреть сообщение
Сразу вопрос. Откуда там взялась структура?
Вот отсюда (стандартный выбор был переопределен)
1C
1
2
3
4
5
6
7
8
9
10
11
12
// Поскольку кроме сотрудника нам необходимо заполнить в документе еще и реквизит "Размер",
// то напишем свою обработку выбора строки из списка сотрудников
&НаКлиенте
Процедура СписокВыборЗначения(Элемент, Значение, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    
    ТекДанные = Элемент.ТекущиеДанные;
    СтруктураЗначений = Новый Структура("Сотрудник, ТарифнаяСтавка", 
        Значение, ТекДанные.ТарифнаяСтавка);
        
    ОповеститьОВыборе(СтруктураЗначений); 
КонецПроцедуры
Добавлено через 1 минуту
Цитата Сообщение от Dimarik_1 Посмотреть сообщение
ТекущаяСтрока = Элементы.ОсновныеНачисления.ТекущаяСтрока;
Можно написать и так, но переименовав таблицу "ОсновныеНачисления" вам придется переписать этот код
Цитата Сообщение от Dimarik_1 Посмотреть сообщение
Таблица = Элемент.Родитель.Родитель;
С таким кодом ничего переписывать не придется
1
1 / 1 / 0
Регистрация: 25.09.2013
Сообщений: 179
13.06.2014, 18:36  [ТС] 3
Я создал форму выбора. Написал такое
1C
1
2
3
4
5
6
7
8
9
10
11
12
&НаКлиенте
Процедура СписокВыборЗначения(Элемент, Значение, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    
    ТекДанные = Элемент.ТекущиеДанные;
    
    СтруктураЗначенией = Новый Структура("Сотрудник, ТарифнаяСтавка", Значение, ТекДанные.Оклад);
    
    ОповеститьОВыборе(СтруктураЗначенией);
    
КонецПроцедуры
Это форма выбора справочника Физические лица
после этого я не могу ничего выбрать. Пустые значения вставляются в соответствующее поле.
0
Вложения
Тип файла: zip 1Cv8 (2).zip (191.9 Кб, 4 просмотров)
Форумчанин
Эксперт 1С
3027 / 1965 / 521
Регистрация: 25.06.2009
Сообщений: 6,864
13.06.2014, 18:49 4
Dimarik_1, в модуле формы Начисления ЗП:
1C
1
2
3
4
5
6
7
    Если Не ТипЗнч(ВыбранноеЗначение) = Тип("СправочникСсылка.ФизическиеЛица") Тогда
        СтандартнаяОбработка = Ложь; //!!!
        Таблица = Элемент.Родитель;
        Таблица.ТекущиеДанные.Сотрудник = ВыбранноеЗначение.Сотрудник;
        Таблица.ТекущиеДанные.Размер = ВыбранноеЗначение.ТарифнаяСтавка;
        
    КонецЕсли;
1
1 / 1 / 0
Регистрация: 25.09.2013
Сообщений: 179
13.06.2014, 18:58  [ТС] 5
Я это исправил и примерно понял, почему была такая проблема. Но у меня есть следующие вопросы:
1. Кто-нибудь знает, насколько важно реализовывать всякие автоматические подставления окладов и прочего при решении задач специалиста? Я с этим стал заморачиваться, потому что в базе с примерами от 1С были такие вещи реализованы.
2. Я прописал:
СтандартнаяОбработка = Ложь; //!!!
После этого я смог выбирать Сотрудника, однако если я выберу сотрудника и сразу же щёлкну на постум месте, у меня удалится вся строка. Почему строка исчезает - непонятно
3. Есть регистр сведений СведенияОСотрудниках. Туда тоже надо вводить сотрудника. и там он тоже не выбирается. Создавать форму регистра сведений? Но я посмотрел, в конфигурации, предоставленной 1С, не создавалась форма и всё работало.
0
Форумчанин
Эксперт 1С
3027 / 1965 / 521
Регистрация: 25.06.2009
Сообщений: 6,864
13.06.2014, 19:07 6
Dimarik_1,
1. важно реализовать функционал в соответствии с условием задачи, если у вас осталось время и вы реализовали доп. опции, то во-первых, не факт, что это будут проверять и учитывать, во-вторых, в лишнем коде можно найти ещё ошибки - и если это так, то скорее всего это учтут.
2. непонятно про какое пустое место вы говорите, у меня строка никуда не исчезает.
3. см. пункт 1.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.06.2014, 19:07

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как сделать так чтобы управляемая форма не расплывалась
Суть проблемы: расплывается табличная часть в управляемой форме по высоте, когда раскрываю формы...

Проверка на открытие формы (управляемая/обычная)
Добрый день, делаю управляемые формы для отчета, создал просто пустую форму управляемую, и вот...

управляемая форма и картинка
нужно в управляемой форме загрузить картинку в поле картинки. есть форма элемента справочника и...

Ошибка инициализации модуля: Документ.Заказ.Форма.ФормаДокумента.Форма
Добрый вечер! Помогите мне пожалуйста! В программе 1С Предприятие 8.3 я создал регистр сведений...


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

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

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