Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
12 Дек 2017, 23:10
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Изменение элементов справочника в выборке  (Прочитано 22848 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Zeratul

  • **
  • Сообщений: 91
  • РЕПУТАЦИЯ: 3
  • КПД: 3%
  • Регистрация: 2010-06-02
  • Сайт: 
Подскажите пожалуйста, хочу сделать выборку всех элементов справочника и добавить в них изменения,  то есть дополнить их и сохранить!
Делал следующее
Спр = Справочники.Справ.Выборка();
Пока Спр.Следующий()=1 Цикл
Объект = Спр.ПолучитьОбъект();
Объект.Код = "Префикс" + Код;
Объект.Дата = Дата;
Объект.Записать();

В таком варианте пишет ошибку  - Поле код недоступен для редактирования и все остальные поля тоже
Я понимаю что я не могу изменить их так как у меня Тип - Выборка!
Подскажите пожалуйста как правильно записать!


Оффлайн Zeratul

  • **
  • Сообщений: 91
  • РЕПУТАЦИЯ: 3
  • КПД: 3%
  • Регистрация: 2010-06-02
  • Сайт: 
Платформа 1с 8.1 Конфигурация Животноводство
Загружаю данные в справочники из Экселя

Оффлайн Slin

  • Глобальный модератор
  • *****
  • Сообщений: 780
  • РЕПУТАЦИЯ: 247
  • КПД: 32%
  • Game over...
  • Регистрация: 2010-10-13
  • Сайт: 
  • Профессия: Программист 1С
Ошибка происходит во время записи?
Если да, то скорее всего это действие какого-то механизма защиты.
А если нет... то странно все это :(
skype: slin-dev

Оффлайн Zeratul

  • **
  • Сообщений: 91
  • РЕПУТАЦИЯ: 3
  • КПД: 3%
  • Регистрация: 2010-06-02
  • Сайт: 
Смотрел по отладчику, он не доходит до Объект.Записать()
сразу после строки Объект.Код = Код вылетает из цикла с ошибкой :dfbsdfbsdf:

Оффлайн progmikon

  • *****
  • Сообщений: 2090
  • РЕПУТАЦИЯ: 371
  • КПД: 18%
  • Регистрация: 2010-10-09
  • Компания: http://progmikon.blogspot.com/
  • Профессия: Программист 1С
Подскажите пожалуйста, хочу сделать выборку всех элементов справочника и добавить в них изменения,  то есть дополнить их и сохранить!
Делал следующее
Спр = Справочники.Справ.Выборка();
Пока Спр.Следующий()=1 Цикл
Объект = Спр.ПолучитьОбъект();
Объект.Код = "Префикс" + Код;
Объект.Дата = Дата;
Объект.Записать();

В таком варианте пишет ошибку  - Поле код недоступен для редактирования и все остальные поля тоже
Я понимаю что я не могу изменить их так как у меня Тип - Выборка!
Подскажите пожалуйста как правильно записать!

У меня первый вопрос, а что такое у вас "Выборка()"?

Спр = Справочники.Справ.Выборка();

Может Выбрать()?

Спр = Справочники.Справ.Выбрать();

Оффлайн Zeratul

  • **
  • Сообщений: 91
  • РЕПУТАЦИЯ: 3
  • КПД: 3%
  • Регистрация: 2010-06-02
  • Сайт: 
ну конешно Выбрать()....извиняюсь наверное думал о Выборке в этот момент :nhsrm:

Оффлайн progmikon

  • *****
  • Сообщений: 2090
  • РЕПУТАЦИЯ: 371
  • КПД: 18%
  • Регистрация: 2010-10-09
  • Компания: http://progmikon.blogspot.com/
  • Профессия: Программист 1С
ну конешно Выбрать()....извиняюсь наверное думал о Выборке в этот момент :nhsrm:

Еще меня смущает
Объект.Код = "Префикс" + Код;
что такое Код? Константа?
получается, что все элементы будут иметь одинаковый код?

Но по вашей ошибке, похоже, как и говорит Slin, на какой-то механизм защиты.
Как правило он задействуется в момент записи объекта.

Но раз вы говорите, что после этой строчки
Объект.Код = "Префикс" + Код;
вываливается ошибка - значит проверка идет где-то еще. Скажите, ваша конфигурация защищается отдельным ключом?

Оффлайн Zeratul

  • **
  • Сообщений: 91
  • РЕПУТАЦИЯ: 3
  • КПД: 3%
  • Регистрация: 2010-06-02
  • Сайт: 
Нет данная конфигурация не защищается ничем!
Я загружаю данные из экселя    Код =НомерколонкиКод в экселе
Когда я загружал из экселя создавая элементы в цикле все хорошо пишется
Но мне щас надо уже в сущ элементах внести изменения!

Оффлайн progmikon

  • *****
  • Сообщений: 2090
  • РЕПУТАЦИЯ: 371
  • КПД: 18%
  • Регистрация: 2010-10-09
  • Компания: http://progmikon.blogspot.com/
  • Профессия: Программист 1С
Вы можете написать полностью ваш код загрузки?

Оффлайн Zeratul

  • **
  • Сообщений: 91
  • РЕПУТАЦИЯ: 3
  • КПД: 3%
  • Регистрация: 2010-06-02
  • Сайт: 
Это код создания элемента спр и записи его!

    НомерЛиста   = 2;
   
    //Пытаемся подключиться к Excel
    Попытка
        Excel = новый COMОбъект("Excel.Application");
    Исключение
        Сообщить("Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel.");
        Возврат;
    КонецПопытки;     
   
    //Подключились удачно, открываем файл
    Excel.Workbooks.Open("C:\Documents and Settings\Владелец\Рабочий стол\Для_Живот.xls");
   
    //Открываем необходимый лист
    Excel.Sheets(НомерЛиста).select();   
   
    //Получим количество строк и колонок.
    //В разных версиях Excel получаются по-разному, поэтому сначала определим версию Excel
    Версия = Лев(Excel.Version,Найти(Excel.Version,".")-1);
   //Если Версия = "8" тогда
        ФайлСтрок   = Excel.Cells.CurrentRegion.Rows.Count;
        ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 13);
      
      
  //определим по файлу в каких колонках необходимые данные
   НомерКолонкиНомерЖивотного             = 2;
   НомерКолонкиПолЖивотного    = 3;
   НомерКолонкиДатаРождения             = 4;
   НомерКолонкиНомерМатери = 5;
   НомерКолонкиДатаРожденияМатери = 6;
   НомерКолонкиНомерОтца = 7;
   НомерКолонкиДатаРожденияОтца = 8;
   НомерКолонкиКличка = 11;
   НомерКолонкиДатаВыбытия = 9;
   НомерКолонкиПричинаВыбытия = 10;
   НомерКолонкиДатаПоступления = 12 ;
   НомерКолонкиПримечание = 1;
    НомерКолонкиВесРожд = 13;
   НомерКолонкиВесОтъем = 14;
   НомерКолонкиВес15 = 17;
    НомерКолонкиВес18 = 18;
    НомерКолонкиВес2г = 19;
   НомерКолонкиВес3г = 20;
   НомерКолонкиВес4г = 21;
   НомерКолонкиВес5г = 22;
   НомерКолонкиВес6г = 23;
   НомерКолонкиВес7г = 24;
   НомерКолонкиВес8г = 25;
   НомерКолонкиВес6м = 14;
   НомерКолонкиВес8м = 15;   
    // Выбираем данные из файла
   Для а = 2 по ФайлСтрок Цикл           
   //   //Полуим данные из соответсвующих ячеек
      КодЖивотного      = СокрЛП(Excel.Cells(а,НомерКолонкиНомерЖивотного).Value);
      ПолЖивотного    = СокрЛП(Excel.Cells(а,НомерКолонкиПолЖивотного).Value);
      ДатаРождения      = Excel.Cells(а,НомерКолонкиДатаРождения).Value;
      НомерМатери = Excel.Cells(а,НомерКолонкиНомерМатери).Value;

      НомерОтца =  СокрЛП(Excel.Cells(а,НомерКолонкиНомерОтца).Value);

      КодВыбытия =    СокрЛП(Excel.Cells(а,НомерКолонкиПричинаВыбытия).Value);
      Кличка =    СокрЛП(Excel.Cells(а,НомерКолонкиКличка).Value);
      ДатаПоступления = Excel.Cells(а,НомерКолонкиДатаПоступления).Value;
      Примечание =  Excel.Cells(а,НомерКолонкиПримечание).Value;
        ВесРожд =  Excel.Cells(а,НомерКолонкиВесРожд).Value;
        ВесОтъем =   Excel.Cells(а,НомерКолонкиВесОтъем).Value;
        Вес15 =  Excel.Cells(а,НомерКолонкиВес15).Value;
      Вес18 =  Excel.Cells(а,НомерКолонкиВес18).Value;
        Вес2г =  Excel.Cells(а,НомерКолонкиВес2г).Value;
        Вес3г =  Excel.Cells(а,НомерКолонкиВес3г).Value;
      Вес4г =  Excel.Cells(а,НомерКолонкиВес4г).Value;
        Вес5г =  Excel.Cells(а,НомерКолонкиВес5г).Value;
        Вес6г =  Excel.Cells(а,НомерКолонкиВес6г).Value;
        Вес7г =  Excel.Cells(а,НомерКолонкиВес7г).Value;
        Вес8г =  Excel.Cells(а,НомерКолонкиВес8г).Value;
        Вес6м =  Excel.Cells(а,НомерКолонкиВес6м).Value;
        Вес8м =  Excel.Cells(а,НомерКолонкиВес8м).Value;
      
      
      
        //создаем и заполняем элемент справочника
         КартКор = Справочники.КарточкаКоровы.СоздатьЭлемент();
          КартКор.Коровы   = Истина;
          КартКор.ПричинаВыбытия =Справочники.ПричиныВыбытияЖивотных.НайтиПоКоду(КодВыбытия);
       Если ПустаяСтрока(КартКор.ПричинаВыбытия)=Истина Тогда
         КартКор.КороваВСтаде = Истина;
      Иначе
         КартКОр.КороваВыбыла = Истина;
         КонецЕсли;
         КартКор.Сельхозпредприятие = Справочники.Сельхозпредприятия.НайтиПоНаименованию("Дружба");
            КартКор.Код = "ДРЖ-" + КодЖивотного;
         КартКор.ДатаРожд = Дата(ДатаРождения+" 00:00:00");
         Если найти(Кличка,"_") >0 Тогда
         КартКор.Наименование =Лев(Кличка,Найти(Кличка,"_")-1);
         Иначе
         КартКор.Наименование =Кличка;
         КонецЕсли;   
         
      
         КартКор.ДатаПоступВСельхозпредприятие = ДатаПоступления;
     
         КартКор.Порода   = Справочники.МясныеПородыКРС.Калмыцкая;
         КартКор.Поколение = Перечисления.Породность.Чистопородные;
         КартКор.МастьИОсобПриметы = Примечание;
         
         КартКор.ЖивМассаКоровыПриРожд = ВесРожд;
         КартКор.ЖивМассаКоровыПриОтъеме = ВесОтъем;
         КартКор.ЖивМассаКоровыВ15мес = Вес15;
         КартКор.ЖивМассаКоровыВ18мес = Вес18;
         КартКор.ЖивМассаКоровыВ2года = Вес2г;
         КартКор.ЖивМассаКоровыВ3года = Вес3г;
         КартКор.ЖивМассаКоровыВ4года = вес4г;
         КартКор.ЖивМассаКоровыВ5лет = вес5г;
         КартКор.ЖивМассаКоровыВ6лет = вес6г;
         КартКор.ЖивМассаКоровыВ7лет = вес7г;
         КартКор.ЖивМассаКоровыВ8лет = вес8г;
         КартКОр.НаивысшаяОценка = Перечисления.Класс.ЭлитаРекорд;
      
         КартКор.ИндНомМатери = Справочники.КарточкаКоровы.НайтиПоКоду("ДРЖ-" + Сред(НомерМатери,5));
         КартКор.ПородаМатери = Справочники.МясныеПородыКРС.Калмыцкая ;
         КартКор.ПоколениеМатери = Перечисления.Породность.Чистопородные;
   
         КартКор.ИндНомОтца =  Справочники.КарточкаБыка.НайтиПоКоду("ДРЖ-" + НомерОтца);
         КартКор.ПородаОтца = Справочники.МясныеПородыКРС.Калмыцкая ;
         КартКор.ПоколениеОтца = Перечисления.Породность.Чистопородные;

            Сообщить(ДатаРождения + " " + КартКор.Сельхозпредприятие + " " + КодЖивотного + " " +"Кличка:" + Лев(Кличка,Найти(Кличка,"_")-1) + "     "   + Кличка + "   КодВыбытия:" + КодВыбытия);

          Попытка
             КартКор.Записать();
      Исключение
                      
      КонецПопытки;
          
          ОбработкаПрерыванияПользователя();

   Конеццикла;
      Сообщить("Загрузка завершена!!!");
   

     Excel.ActiveWorkbook.Close();


Теги:
 

Как вызвать "Анализ субконто" из справочника "Контрагенты"

Автор EnigManРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 6489
Последний ответ 06 Фев 2012, 10:46
от cska-fanat-kz
Заполнение поля табличной части документа из табличной части справочника.

Автор Kurt_WagnerРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 4195
Последний ответ 06 Апр 2015, 20:08
от Kurt_Wagner
Заполнение табличной части документа реквизитами табличной части справочника

Автор kaf_infoРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 620
Последний ответ 10 Май 2017, 20:44
от ilnur75
Как сделать, чтобы поле в документе имело тип "ссылка на поле справочника"?

Автор друганРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 5
Просмотров: 2030
Последний ответ 05 Мар 2017, 14:36
от Igor100500
Работа с формой Справочника "Физ.Лица" в ЗУП 2.5

Автор Митя_Просто_МитяРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 3886
Последний ответ 15 Дек 2011, 00:04
от Vit1501

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
170 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
55 Сообщений
alex0402
49 Сообщений
andron81_81
42 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 291
  • Точка Скрытых: 0
  • Точка Пользователей: 4
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal