Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
nastena_r_v
47 / 47 / 1
Регистрация: 03.05.2012
Сообщений: 266
1

Добавление данных из справочника в регистр сведений

10.05.2016, 20:23. Просмотров 2469. Ответов 63
Метки нет (Все метки)

Здравствуйте всем, вопрос конечно я думаю для профи - легкий, но для новичка (для меня) - не понятен.*
Конфигурация УПП. Есть справочник Должности и регистр сведений ДолжностныеКомпетенцииРабтоников. В справочнике в табличное поле добавляются данные о компетенциях,эти данные записываются в регистр сведений, если допустим уже созданную строку изменить, то в регистре она соответственно тоже изменится, а не добавится новая. Регистр был не периодический, сделала периодичным в пределах дня. Вопрос: как сделать, чтоб при изменении строки с данными компетенции в справочнике, в регистр сведений добавлялась новая строка, а не изменялась предыдущая.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2016, 20:23
Ответы с готовыми решениями:

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

Регистр сведений «Списанные материалы из эксплуатации». Почему регистр сведений, а не регистр накопления?
Существует Регистр сведений «Списанные материалы из эксплуатации». Регистр...

Регистр сведений. Добавление записи
Есть независимый, непериодический регистр сведений. Добавляю запись...

Регистр сведений. Ошибка получения данных
Подскажите в чем ошибка? Код из общего модуля Функция...

Вывод в табличную часть справочника данных из регистра сведений
Здравствуйте! Есть справочник и РС. Надо в табличную часть справочника вывести...

63
GreenkA
Модератор
Эксперт 1С
2307 / 1775 / 511
Регистрация: 25.06.2009
Сообщений: 6,546
09.06.2016, 09:26 61
nastena_r_v, покажите код заполнения этого табличного поля в справочнике Должности, может вы там отбор по Должности не делаете?
0
nastena_r_v
47 / 47 / 1
Регистрация: 03.05.2012
Сообщений: 266
13.06.2016, 21:00  [ТС] 62
GreenkA, Вот по всем процедурам, где есть изменения:
1C
1
2
3
4
5
6
7
8
9
10
11
12
Процедура ПриОткрытии()
        
    ЗаполнитьТаблицуКомпетенций();  
    
    СтрокаТП = ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные;
    Если СтрокаТП <> Неопределено Тогда
        Если СтрокаТП.Действие = Перечисления.ВидыДействияСНачислением.Прекратить Тогда
            СтрокаТП.Очистить();
        КонецЕсли;
    КонецЕсли;
                
КонецПроцедуры // ПриОткрытии
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Процедура ЗаполнитьТаблицуКомпетенций()
    ТабличноеПоле1.Очистить();
    Запрос = Новый Запрос("ВЫБРАТЬ
                          | ДолжностныеКомпетенцииРаботниковСрезПоследних.Должность,
                          | ДолжностныеКомпетенцииРаботниковСрезПоследних.Период,
                          | ДолжностныеКомпетенцииРаботниковСрезПоследних.Действие,
                          | ДолжностныеКомпетенцииРаботниковСрезПоследних.Периодичность,
                          | ДолжностныеКомпетенцииРаботниковСрезПоследних.Компетенция КАК Компетенция,
                          | ДолжностныеКомпетенцииРаботниковСрезПоследних.Компетенция1 КАК Компетенция1
                          |ИЗ
                          | РегистрСведений.ДолжностныеКомпетенцииРаботников.СрезПоследних(, ) КАК ДолжностныеКомпетенцииРаботниковСрезПоследних
                          |ГДЕ
                          | ДолжностныеКомпетенцииРаботниковСрезПоследних.Действие <> ЗНАЧЕНИЕ(Перечисление.ВидыДействияСНачислением.Прекратить)");
    Запрос.УстановитьПараметр("Должность", Ссылка);
    Выборка = Запрос.Выполнить().Выбрать();    Пока Выборка.Следующий() Цикл
        ЗаполнитьЗначенияСвойств(ТабличноеПоле1.Добавить(), Выборка);       
    КонецЦикла;
                          
КонецПроцедуры
1C
1
2
3
4
5
6
Процедура ТабличноеПоле1ПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
    ТекущаяСтрока = ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные;
    Если ТекущаяСтрока <> Неопределено Тогда
        ТекущаяСтрока.МеткаИзменения = Истина;
    КонецЕсли;
КонецПроцедуры
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Процедура ПриЗаписи(Отказ)
     ИзмененныеСтрокиТаблицы = ТабличноеПоле1.НайтиСтроки(Новый Структура("МеткаИзменения",Истина));
    Для к = 0 по ИзмененныеСтрокиТаблицы.Количество() - 1 Цикл
        НоваяЗапись = РегистрыСведений.ДолжностныеКомпетенцииРаботников.СоздатьМенеджерЗаписи();
        НоваяЗапись.Компетенция = ИзмененныеСтрокиТаблицы[к].Компетенция;
        НоваяЗапись.Компетенция1 = ИзмененныеСтрокиТаблицы[к].Компетенция1;
        НоваяЗапись.Периодичность = ИзмененныеСтрокиТаблицы[к].Периодичность;
        НоваяЗапись.Действие = ИзмененныеСтрокиТаблицы[к].Действие;
        НоваяЗапись.Период = ИзмененныеСтрокиТаблицы[к].Период;
        //НоваяЗапись.Период = ТекущаяДата();
        НоваяЗапись.Должность = Ссылка;
        НоваяЗапись.Записать();
    КонецЦикла;  
    
КонецПроцедуры
0
GreenkA
Модератор
Эксперт 1С
2307 / 1775 / 511
Регистрация: 25.06.2009
Сообщений: 6,546
14.06.2016, 00:18 63
nastena_r_v, вы параметр запроса выставляете - Должность, но в самом запросе этого отбора нет.
1
nastena_r_v
47 / 47 / 1
Регистрация: 03.05.2012
Сообщений: 266
14.06.2016, 08:32  [ТС] 64
Точно. Я не обратила внимания на этого =) Спасибо
1C
1
2
3
4
5
6
7
8
9
10
11
    Запрос = Новый Запрос("ВЫБРАТЬ
                          | ДолжностныеКомпетенцииРаботниковСрезПоследних.Должность,
                          | ДолжностныеКомпетенцииРаботниковСрезПоследних.Период,
                          | ДолжностныеКомпетенцииРаботниковСрезПоследних.Действие,
                          | ДолжностныеКомпетенцииРаботниковСрезПоследних.Периодичность,
                          | ДолжностныеКомпетенцииРаботниковСрезПоследних.Компетенция КАК Компетенция,
                          | ДолжностныеКомпетенцииРаботниковСрезПоследних.Компетенция1 КАК Компетенция1
                          |ИЗ
                          | РегистрСведений.ДолжностныеКомпетенцииРаботников.СрезПоследних(, Должность = &Должность) КАК ДолжностныеКомпетенцииРаботниковСрезПоследних
                          |ГДЕ
                          | ДолжностныеКомпетенцииРаботниковСрезПоследних.Действие <> ЗНАЧЕНИЕ(Перечисление.ВидыДействияСНачислением.Прекратить)");
параметр запроса вставить в параметры виртуальной таблицы или в условия?
0
14.06.2016, 08:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2016, 08:32

Регистр сведений. Регистр накоплений
Здравствуйте! Нужна помощь в создании (и настройки работы) регистра сведений и...

Регистр сведений
Здравствуйте все!!! Подскажите вот что. Я создал три регистра:...

Регистр сведений
Нужна помощь в оптимизации запроса... есть запрос: Запрос = Новый Запрос;...


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

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

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