Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
47 / 47 / 1
Регистрация: 03.05.2012
Сообщений: 266
1

Синхронизация справочников

15.03.2016, 07:28. Показов 4444. Ответов 26
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, подскажите, как можно синхронизировать справочник Должности организации и Должности? Справочник по упр.учету "Должности" не велся, а сейчас необходимо начать использовать его. Вручную очень долго переносить данные. Может у кого есть? Или примерно что-то похожее есть, как наглядный пример... За ранее спасибо всем.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.03.2016, 07:28
Ответы с готовыми решениями:

Иерархия справочников
Заблудился в трёх соснах, как сделать, чтоб при вводе реквизита группы справочника, этот же...

Разделение справочников и документов
Здравствуйте, как сделать так, чтобы в конфигурации справочники и документы были не в куче?

Программная перезапись справочников
День добрый. Допустим : есть некий справочник. В этот справочник добавили 2 реквизита, и их нужно...

Простая организация справочников
Не используя элемент "Табличные части" . Организовать справочники таким образом, чтобы можно было...

26
Эксперт 1С
3062 / 2009 / 524
Регистрация: 25.06.2009
Сообщений: 6,964
15.03.2016, 10:01 2
nastena_r_v, какая у вас конфигурация? Какова структура этих справочников?
Думаю, написать обработку по переносу данных не должно занять много времени...
1
47 / 47 / 1
Регистрация: 03.05.2012
Сообщений: 266
15.03.2016, 10:35  [ТС] 3
GreenkO, конфигурация УПП 8,3 обычное приложение. Справочники типовые. Различий нет только в стандартных реквизитах. Было бы приемлемо автоматически перенести данные по наименованию и коду. Подскажите, с чего начать, или может пример какой есть?
0
Эксперт 1С
3062 / 2009 / 524
Регистрация: 25.06.2009
Сообщений: 6,964
15.03.2016, 11:03 4
Лучший ответ Сообщение было отмечено nastena_r_v как решение

Решение

nastena_r_v, создаете обработку. на команду Выполнить() - код
1C
1
2
3
4
5
6
7
8
9
10
11
Процедура КнопкаВыполнитьНажатие(Кнопка)
 ВыборкаДолжностей = Справочники.ДолжностиОрганизации.Выбрать();
 Пока ВыборкаДолжностей.Следующий() Цикл
  ТекДолжность = Справочники.Должности.НайтиПоНаименованию(ВыборкаДолжностей.Наименование);
  Если ТекДолжность.Пустая() Тогда
    НовДолжность = Справочники.Должности.СоздатьЭлемент();
    ЗаполнитьЗначенияСвойств(НовДолжность, ВыборкаДолжностей);
    НовДолжность.Записать();
  КонецЕсли;
 КонецЦикла;
КонецПроцедуры
Перед запуском - сделайте бэкап базы на всякий случай.
1
47 / 47 / 1
Регистрация: 03.05.2012
Сообщений: 266
15.03.2016, 12:29  [ТС] 5
GreenkO, ругается на "Заполнить значение свойств"
Миниатюры
Синхронизация справочников  
0
Эксперт 1С
3062 / 2009 / 524
Регистрация: 25.06.2009
Сообщений: 6,964
15.03.2016, 13:45 6
nastena_r_v, тогда прописывайте реквизиты отдельно:
1C
1
2
3
4
5
6
7
  Если ТекДолжность.Пустая() Тогда
    НовДолжность = Справочники.Должности.СоздатьЭлемент();
    НовДолжность.Наименование = ВыборкаДолжностей.Наименование;
    НовДолжность.Код = ВыборкаДолжностей.Код;
//и так далее
    НовДолжность.Записать();
  КонецЕсли;
1
Эксперт 1С
844 / 607 / 211
Регистрация: 24.07.2013
Сообщений: 2,102
15.03.2016, 20:00 7
Или параметр добавить
1C
1
ЗаполнитьЗначенияСвойств(НовДолжность, ВыборкаДолжностей,, "Родитель");
1
47 / 47 / 1
Регистрация: 03.05.2012
Сообщений: 266
01.04.2016, 14:18  [ТС] 8
GreenkO, должности переносит, но почему-то некоторые пропускает, причем справочник "Должности" был абсолютно пустой. ((

Добавлено через 3 часа 1 минуту
Разобралась почему пропускает строки.
А еще вопрос, тоже по этим же должностям. Как сделать, чтоб при добавлении новой должности в справочник "Должности организации", добавлялась автоматически эта же должность в справочник "Должности", так же по коду и наименованию.
0
Эксперт 1С
3062 / 2009 / 524
Регистрация: 25.06.2009
Сообщений: 6,964
01.04.2016, 14:22 9
nastena_r_v, можно перед записью проверять:
1C
1
2
3
4
5
6
7
8
9
10
11
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
Если Объект.Ссылка.Пустая() Тогда
ТекДолжность = Справочники.Должности.НайтиПоНаименованию(Объект.Наименование);
  Если ТекДолжность.Пустая() Тогда
    НовДолжность = Справочники.Должности.СоздатьЭлемент();
    ЗаполнитьЗначенияСвойств(НовДолжность, Объект,, "Родитель");
    НовДолжность.Записать();
  КонецЕсли;
КонецЕсли;
КонецПроцедуры
1
47 / 47 / 1
Регистрация: 03.05.2012
Сообщений: 266
03.04.2016, 21:59  [ТС] 10
GreenkO, добавила в процедуру "При записи", иначе на код никак не реагирует. ,но ругается на
Если Объект.Ссылка.Пустая() Тогда

1C
1
2
3
4
5
6
7
8
9
Объект = Справочники.ДолжностиОрганизаций.Выбрать();
    Если Объект.Ссылка.Пустая() Тогда
ТекДолжность = Справочники.Должности.НайтиПоНаименованию(Объект.Наименование);
  Если ТекДолжность.Пустая() Тогда
    НовДолжность = Справочники.Должности.СоздатьЭлемент();
    ЗаполнитьЗначенияСвойств(НовДолжность, Объект,, "Родитель");
    НовДолжность.Записать();
  КонецЕсли;
КонецЕсли;
пишет: Значение не является значением объектного типа (Пустая)
Хотя при создании кода дает выбрать эту функцию.
0
Эксперт 1С
3062 / 2009 / 524
Регистрация: 25.06.2009
Сообщений: 6,964
03.04.2016, 22:17 11
nastena_r_v, ПриЗаписиНаСервере?
Цитата Сообщение от nastena_r_v Посмотреть сообщение
иначе на код никак не реагирует
Сорри, предыдущий код надо исправить:
1C
1
2
3
4
5
6
7
8
9
10
11
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
Если ТекущийОбъект.Ссылка.Пустая() Тогда
ТекДолжность = Справочники.Должности.НайтиПоНаименованию(ТекущийОбъект.Наименование);
  Если ТекДолжность.Пустая() Тогда
    НовДолжность = Справочники.Должности.СоздатьЭлемент();
    ЗаполнитьЗначенияСвойств(НовДолжность, ТекущийОбъект,, "Родитель");
    НовДолжность.Записать();
  КонецЕсли;
КонецЕсли;
КонецПроцедуры
1
47 / 47 / 1
Регистрация: 03.05.2012
Сообщений: 266
04.04.2016, 05:25  [ТС] 12
GreenkO, все-равно процедуру не видит. А если я переношу код в процедуру при записи, то ругается так же на значение "пустая", как я и писала ранее.
0
Эксперт 1С
3062 / 2009 / 524
Регистрация: 25.06.2009
Сообщений: 6,964
04.04.2016, 09:32 13
nastena_r_v, вам надо связать процедуру с событием формы. И прописать ее надо в модуле формы.
0
47 / 47 / 1
Регистрация: 03.05.2012
Сообщений: 266
04.04.2016, 10:53  [ТС] 14
Я так и делала. Нет результата.
В чем может быть причина, что он ругается на значение "Пустая?
0
Эксперт 1С
3062 / 2009 / 524
Регистрация: 25.06.2009
Сообщений: 6,964
04.04.2016, 13:26 15
nastena_r_v, в отладчике смотрели? заходит в эту процедуру?
0
59 / 64 / 11
Регистрация: 13.11.2014
Сообщений: 940
06.04.2016, 07:45 16
Цитата Сообщение от GreenkO Посмотреть сообщение
создаете обработку. на команду Выполнить() - код
1CВыделить код

1C
1
2
3
4
5
6
7
8
9
10
11
Процедура КнопкаВыполнитьНажатие(Кнопка)
*ВыборкаДолжностей = Справочники.ДолжностиОрганизации.Выбрать();
*Пока ВыборкаДолжностей.Следующий() Цикл
* ТекДолжность = Справочники.Должности.НайтиПоНаименованию(ВыборкаДолжностей.Наименование);
* Если ТекДолжность.Пустая() Тогда
* * НовДолжность = Справочники.Должности.СоздатьЭлемент();
* * ЗаполнитьЗначенияСвойств(НовДолжность, ВыборкаДолжностей);
* * НовДолжность.Записать();
* КонецЕсли;
*КонецЦикла;
КонецПроцедуры
Можете подсказать почему не работает код? 1С 8.2 ,пишет ошибки:
1C
1
2
3
4
{Обработка.Обработка1.Форма.Форма.Форма(3,11)}: Ожидается имя процедуры
Процедура <<?>>Выполнить(Команда); (Проверка: Сервер)
{Обработка.Обработка1.Форма.Форма.Форма(3,11)}: Ожидается имя процедуры
Процедура <<?>>Выполнить(Команда); (Проверка: Тонкий клиент)
1
Эксперт 1С
3062 / 2009 / 524
Регистрация: 25.06.2009
Сообщений: 6,964
06.04.2016, 08:39 17
Briolin, измените имя процедуры.
0
59 / 64 / 11
Регистрация: 13.11.2014
Сообщений: 940
06.04.2016, 08:52 18
Цитата Сообщение от GreenkO Посмотреть сообщение
измените имя процедуры.
Я сразу изменил её, не помогло
0
Эксперт 1С
3062 / 2009 / 524
Регистрация: 25.06.2009
Сообщений: 6,964
06.04.2016, 08:54 19
Briolin, покажите весь код вашей процедуры
0
59 / 64 / 11
Регистрация: 13.11.2014
Сообщений: 940
06.04.2016, 08:58 20
GreenkO,
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
&НаКлиенте
Процедура Выполнить(Команда)
    
 ВыборкаДолжностей = Справочники.ДолжностиОрганизации.Выбрать();
 Пока ВыборкаДолжностей.Следующий() Цикл
  ТекДолжность = Справочники.Должности.НайтиПоНаименованию(ВыборкаДолжностей.Наименование);
  Если ТекДолжность.Пустая() Тогда
    НовДолжность = Справочники.Должности.СоздатьЭлемент();
    ЗаполнитьЗначенияСвойств(НовДолжность, ВыборкаДолжностей);
    НовДолжность.Записать();
  КонецЕсли;
 КонецЦикла;
КонецПроцедуры
0
06.04.2016, 08:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.04.2016, 08:58
Помогаю со студенческими работами здесь

Печать, запрос из двух справочников
Всем привет. Есть справочник Договора. Через запрос вывожу на печать реквизиты: Код, ФИО, Адрес....

Объединение несколько справочников в один
Добрый день,уважаемые форумчане.Собственно проблема: &quot;у меня есть два документа: в первом документе...

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

Заполнение справочников данными из документов
Здравствуйте! Есть справочник Кружки и документ ЗачислениеВКружки. Необходимо чтобы после...

Автоматическое заполнение из справочников в документ
Итак, доброе время суток. Мне нужен ваш совет и подсказка. Как из табличной части справочника...

Заполнение документа из двух справочников
&amp;НаСервере Процедура ЗаполнитьНаСервере(МоеБлюдо) Запрос = Новый Запрос; Запрос.Текст = ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru