[РЕШЕНО] Программное заполнение справочника "Сотрудники"

Тема в разделе "Типовые решения "1С:Предприятие 7.7"", создана пользователем Виктор13245234, 16 апр 2016.

  1. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Группа = СоздатьОбъект("Справочник.Сотрудники");
    СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
    СпрСотр.ОсновнойЭлемент=СпрСотр.ТекущийЭлемент();
    Если Группа.НайтиПоНаименованию (ТабЗнач.Подразделение) = 1 Тогда
    СпрСотр.Родитель = Группа.ТекущийЭлемент();
    КонецЕсли;

    перепозиционировали элемент и еще удивляетесь.....
    Последнее редактирование: 22 апр 2016
  2. TopicStarter Overlay
    Виктор13245234
    Offline

    Виктор13245234 Опытный в 1С

    Регистрация:
    17 мар 2015
    Сообщения:
    179
    Симпатии:
    3
    Баллы:
    29
    Холера я , спасибо :)
  3. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
  4. TopicStarter Overlay
    Виктор13245234
    Offline

    Виктор13245234 Опытный в 1С

    Регистрация:
    17 мар 2015
    Сообщения:
    179
    Симпатии:
    3
    Баллы:
    29
    Еще один вопрос. Скорее всего последний. Нужно найти элемент в справочнике Сотрудники и поменять его реквизиты: . ВОт код:
    Код:
    ТабЗнач = СоздатьОбъект("ТаблицаЗначений");
    ТабЗнач.НоваяКолонка("Наименование", "Строка");
    ТабЗнач.НоваяКолонка("Код", "Строка");
    ТабЗнач.НоваяКолонка("Свойство", "Строка");
    ТабЗнач.НоваяКолонка("Значение", "Строка");
            Файл = СоздатьОбъект("Текст");
    Файл.Открыть("C:\Обмен\КадровыеДанные\ДопРеквизиты.txt");
    Для ы = 1 По Файл.КоличествоСтрок() Цикл
        //Заполняем таблицу значений и выводим
        Стр = СтрЗаменить(Файл.ПолучитьСтроку(ы),СимволТабуляции,РазделительСтрок);
        ТабЗнач.НоваяСтрока();
    ТабЗнач.Наименование =  СтрПолучитьСтроку(Стр,1);   
    ТабЗнач.Код =  СтрПолучитьСтроку(Стр,2);
    ТабЗнач.Свойство = СтрПолучитьСтроку(Стр,3);
    ТабЗнач.Значение = СтрПолучитьСтроку(Стр,4);
    КонецЦикла;
    Спр = СоздатьОбъект("Справочник.Сотрудники");
    ТабЗнач.ВыбратьСтроки();
    Пока ТабЗнач.ПолучитьСтроку() = 1 Цикл
       
        Если Спр.НайтиПоКоду(ТабЗнач.Код) = 1 Тогда
            //БезПробелов = СтрЗаменить (ТабЗнач.Свойство, " ", "");
            Если ТабЗнач.Свойство = "Свидетельство об обучении охранника (Сотрудники)" Тогда
            Спр.УстановитьАтрибут("СвидетельствоОбОбученииОхранника",ТабЗнач.Значение);
        ИначеЕсли ТабЗнач.Свойство = "Удостоверение частного охранника (Сотрудники)" Тогда
                 Спр.УстановитьАтрибут("СвидетельствоОбОбученииОхранника",ТабЗнач.Значение);
        ИначеЕсли ТабЗнач.Свойство = "Свидетельство о присвоении разряда (Сотрудники)" Тогда
                 Спр.УстановитьАтрибут("СвидРазряда",ТабЗнач.Значение);
        ИначеЕсли ТабЗнач.Свойство = "ДатаКомиссии46 (Сотрудники)" Тогда
            ЗначениеСтрока = Лев(ТабЗнач.Значение,10);
           
            ЗначениеДата =  Дата(Прав(ЗначениеСтрока,2)+Сред(ЗначениеСтрока,4,2)+Лев(ЗначениеСтрока,2)+"000000");           
           
                 Спр.УстановитьАтрибут("СвидРазряда",ЗначениеДата);    
        ИначеЕсли ТабЗнач.Свойство = " ДатаКомиссии86 (Сотрудники)" Тогда
            ЗначениеСтрока = Лев(ТабЗнач.Значение,10);
           
            ЗначениеДата =  Дата(Прав(ЗначениеСтрока,2)+Сред(ЗначениеСтрока,4,2)+Лев(ЗначениеСтрока,2)+"000000");           
           
                 Спр.УстановитьАтрибут("СвидРазряда",ЗначениеДата);    
            КонецЕсли;
               
                КонецЕсли;
       Спр.Записать();
    КонецЦикла;
        
    Не записывает. В ТЗ выводит адекватно. Прошу ткнуть меня пальцем :) Заранее Спасибо!
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    судя по коду - не находит элемент

    проверьте себя
    ....
    Если Спр.НайтиПоКоду(ТабЗнач.Код) = 1 Тогда
    Сообщить("Нашли! "+спр);
    .....
  6. TopicStarter Overlay
    Виктор13245234
    Offline

    Виктор13245234 Опытный в 1С

    Регистрация:
    17 мар 2015
    Сообщения:
    179
    Симпатии:
    3
    Баллы:
    29
    Проверил, находит элементы. Правильная ли у меня конструкция заполнения реквизитов?
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    запись перенесите внутрь конструкции если.... хотя и так должно срабатывать
  8. TopicStarter Overlay
    Виктор13245234
    Offline

    Виктор13245234 Опытный в 1С

    Регистрация:
    17 мар 2015
    Сообщения:
    179
    Симпатии:
    3
    Баллы:
    29
    Разобрался уже. напрямую указывал реквизит, спасибо

Поделиться этой страницей