Имя: Пароль:
1C
1С v8
Запись в справочник 8,2
0 KonstantinK90
 
02.03.15
10:30
Здраствуйте пишу вот так в обработке но все равно не записывает хотя в отладчике я вижу что передается значение  ТекущаяСсылка = Справочники.ОсновныеСредства.СоздатьЭлемент();
             ТекущаяСсылка.НомерПаспорта = НоваяСтрока.НомерПТС;
             Сообщить(ТекущаяСсылка.НомерПаспорта);
             ТекущаяСсылка.Записать();
1 salvator
 
02.03.15
10:32
(0) А остальные реквизиты заполнить?
2 KonstantinK90
 
02.03.15
10:32
почему не записывает вот весь код     НаборЗаписей = РегистрыСведений.уатПервоначальныеСведенияТС.СоздатьНаборЗаписей();
Если  ЗначениеЗаполнено(Строка.Колонка1) = Истина Тогда     
    НаборЗаписей.Отбор.ГосударственныйНомер_.Установить(Строка.Колонка1);
    НаборЗаписей.Прочитать();
    Для Каждого Запись Из НаборЗаписей Цикл
                   // Чтение и сообщение данных полей записи.
                   Сообщить(Строка(Запись.ГосударственныйНомер_));    
                  УбратьПробел
                     // оригинал
                  // Запись.VIN_ = Запись.VIN;
                  Запись.ИсправленОбработкой = Истина;
                  
                   Запись.VIN = НоваяСтрока.VINНомер;
                   Запись.ГосударственныйНомер = Строка.Колонка1;
                  // Запись.Модель = Строка.Колонка2;
                   Запись.НомерДвигателя = Строка.Колонка3;
                   Запись.ГодВыпуска = Строка.Колонка5;
                   Запись.МощностьДвигателяЛС = Строка.Колонка7;
                   Запись.НомерШасси = Строка.Колонка9;
                   Запись.НомерКузова = Строка.Колонка10;
                  
                   //Если не нашли цветкузова то тогда создаем его
                   Элемент = Справочники.уатЦвета.НайтиПоНаименованию(Строка.Колонка11);
             Если Элемент.Пустая() = ложь тогда
                   Элемент = Справочники.уатЦвета.СоздатьЭлемент();
                   Элемент.Наименование =  Строка.Колонка11;
                   Запись.ЦветКузова =   Справочники.уатЦвета.НайтиПоНаименованию(Строка.Колонка11);
                   НаборЗаписей.Записать();
             Иначе
             КонецЕсли;
                    Запись.НомерСерииЛицензионнойКарточки = Строка.Колонка12;
                  
                   //Ищем дату в строке  НоваяСтрока.ОсобыеОтметки = Строка.Колонка15
            Если  НоваяСтрока.Дата_Дог_От    = "" Тогда
            Иначе
                 Запись.Дата_Дог_От = НоваяСтрока.Дата_Дог_От;
            КонецЕсли;
    
            Если НоваяСтрока.Дата_Дог_До    = "" Тогда       
            Иначе
              Запись.Дата_Дог_До = НоваяСтрока.Дата_Дог_До;
          КонецЕсли;
          
          //ТС
             ТекущаяСсылка = Справочники.ОсновныеСредства.СоздатьЭлемент();
             ТекущаяСсылка.НомерПаспорта = НоваяСтрока.НомерПТС;
             Сообщить(ТекущаяСсылка.НомерПаспорта);
             ТекущаяСсылка.Записать();
          //
КонецЦикла;
НаборЗаписей.Записать();
3 KonstantinK90
 
02.03.15
10:33
но меня интересует только вот этот код он почему то не записывает
    НаборЗаписей = РегистрыСведений.уатПервоначальныеСведенияТС.СоздатьНаборЗаписей();
Если  ЗначениеЗаполнено(Строка.Колонка1) = Истина Тогда     
    НаборЗаписей.Отбор.ГосударственныйНомер_.Установить(Строка.Колонка1);
    НаборЗаписей.Прочитать();
    Для Каждого Запись Из НаборЗаписей Цикл
                   // Чтение и сообщение данных полей записи.
                   Сообщить(Строка(Запись.ГосударственныйНомер_));    
                   // Запись.ГосударственныйНомер =   СтрЗаменить(Запись.ГосударственныйНомер," ","");  //УбратьПробел
                     // оригинал
                  // Запись.VIN_ = Запись.VIN;
                  Запись.ИсправленОбработкой = Истина;
                  
                   Запись.VIN = НоваяСтрока.VINНомер;
                   Запись.ГосударственныйНомер = Строка.Колонка1;
                  // Запись.Модель = Строка.Колонка2;
                   Запись.НомерДвигателя = Строка.Колонка3;
                   Запись.ГодВыпуска = Строка.Колонка5;
                   Запись.МощностьДвигателяЛС = Строка.Колонка7;
                   Запись.НомерШасси = Строка.Колонка9;
                   Запись.НомерКузова = Строка.Колонка10;
                  
                   //Если не нашли цветкузова то тогда создаем его
                   Элемент = Справочники.уатЦвета.НайтиПоНаименованию(Строка.Колонка11);
             Если Элемент.Пустая() = ложь тогда
                   Элемент = Справочники.уатЦвета.СоздатьЭлемент();
                   Элемент.Наименование =  Строка.Колонка11;
                   Запись.ЦветКузова =   Справочники.уатЦвета.НайтиПоНаименованию(Строка.Колонка11);
                   НаборЗаписей.Записать();
             Иначе
             КонецЕсли;
                    Запись.НомерСерииЛицензионнойКарточки = Строка.Колонка12;
                  
                   //Ищем дату в строке  НоваяСтрока.ОсобыеОтметки = Строка.Колонка15
            Если  НоваяСтрока.Дата_Дог_От    = "" Тогда
            Иначе
                 Запись.Дата_Дог_От = НоваяСтрока.Дата_Дог_От;
            КонецЕсли;
    
            Если НоваяСтрока.Дата_Дог_До    = "" Тогда       
            Иначе
              Запись.Дата_Дог_До = НоваяСтрока.Дата_Дог_До;
          КонецЕсли;
          
          //ТС
             ТекущаяСсылка = Справочники.ОсновныеСредства.СоздатьЭлемент();
             ТекущаяСсылка.НомерПаспорта = НоваяСтрока.НомерПТС;
             Сообщить(ТекущаяСсылка.НомерПаспорта);
             ТекущаяСсылка.Записать();
          //
КонецЦикла;
НаборЗаписей.Записать();
4 KonstantinK90
 
02.03.15
10:34
ой
5 KonstantinK90
 
02.03.15
10:34
ТекущаяСсылка = Справочники.ОсновныеСредства.СоздатьЭлемент();
             ТекущаяСсылка.НомерПаспорта = НоваяСтрока.НомерПТС;
             Сообщить(ТекущаяСсылка.НомерПаспорта);
             ТекущаяСсылка.Записать();
6 salvator
 
02.03.15
10:34
Элемент = Справочники.уатЦвета.НайтиПоНаименованию(Строка.Колонка11);
             Если Элемент.Пустая() = ложь тогда
                   Элемент = Справочники.уатЦвета.СоздатьЭлемент();
---
А на-зачем создавать элемент, если он НАЙДЕН?
7 Легат
 
02.03.15
10:36
Посмотрите в справочнике, какие обязательные реквизиты и заполните их..
8 KonstantinK90
 
02.03.15
10:38
все обязательные реквизиты заполнены вот пишу вот так ТекущаяСсылка = Справочники.ОсновныеСредства.СоздатьЭлемент();
             ТекущаяСсылка.НомерПаспорта = НоваяСтрока.НомерПТС;
             Сообщить(ТекущаяСсылка.НомерПаспорта);
             ТекущаяСсылка.Записать();
и все равон не записывает
9 salvator
 
02.03.15
10:39
(8) Отладчик - лучший помощник.
10 Легат
 
02.03.15
10:40
Хватит код копипастить.. пожалуйста. А наименование?
11 KonstantinK90
 
02.03.15
10:41
что наименование?
12 salvator
 
02.03.15
10:43
(11) Есть такой реквизит. Его надо заполнить, по идее.
13 KonstantinK90
 
02.03.15
10:44
наименование этого справочника заполнено
14 salvator
 
02.03.15
10:46
(13) Посмотри в (8) и скажи в какой строке у тебя заполняется наименование.
15 Wobland
 
02.03.15
10:46
(13) уже заполнил? ну поздравляем
16 KonstantinK90
 
02.03.15
10:48
а может я не правильно на писал
17 KonstantinK90
 
02.03.15
10:49
мне то нужно записать это с существующий справочник где наименование уже записано
18 Wobland
 
02.03.15
10:50
СоздатьЭлемент - это очень существующий, да
19 KonstantinK90
 
02.03.15
10:51
дописать в справочник номер паспорта
как обратиться к существующему справочнику и дописать в него необходимый реквизит
20 KonstantinK90
 
02.03.15
10:51
ну опыта мало вот и косяки
21 Wobland
 
02.03.15
10:53
(19) поискать ссылку? получить из неё объект? изменить объект? записать
22 KonstantinK90
 
02.03.15
10:57
ТекущаяСсылка = Справочники.ОсновныеСредства.ПолучитьСсылку();
             ТекущаяСсылка.НомерПаспорта = НоваяСтрока.НомерПТС;
             Сообщить(ТекущаяСсылка.НомерПаспорта);
             ТекущаяСсылка.Записать();
пишет ошибку поле объекта не доступно для записи
23 KonstantinK90
 
02.03.15
10:57
Поле объекта недоступно для записи (НомерПаспорта)
             ТекущаяСсылка.НомерПаспорта = НоваяСтрока.НомерПТС;
24 Wobland
 
02.03.15
10:58
какой существующий элемент интересует
25 KonstantinK90
 
02.03.15
10:59
НомерПаспорта
26 Fish
 
02.03.15
10:59
(22) А СП принципиально не читаем?
27 Wobland
 
02.03.15
11:00
(25) что это!
28 KonstantinK90
 
02.03.15
11:00
что такое сп?
29 Wobland
 
02.03.15
11:02
(28) Святое Писание - это сборник статей, написанный Пророком Нуралиевым и Апостолами-сотрудниками его при помощи Святаго Духа Божьего, открывающие нам тайны Божьего Промысла и дающие спасение душам нашим
30 1976vas
 
02.03.15
11:02
(28) Синтакс-помощник в конфигураторе.
31 KonstantinK90
 
02.03.15
11:02
как мне исправить свою ошибку
32 1976vas
 
02.03.15
11:03
Но определение (29) мне больше нравится )
33 Fish
 
02.03.15
11:03
(31) Почитать наконец-то СП, немного подумать, и написать правильный код.
34 hhhh
 
02.03.15
11:04
(31) в ссылку невозможно записать. Написали же "получить объект".
35 hhhh
 
02.03.15
11:05
(31) И ссылка не может никуда течь. Что за слово "текущая ссылка"?
36 Легат
 
02.03.15
11:08
Сначала СоздатьЭлемент , потом ПолучитьСсылку. куда котится мррр..
37 D_E_S_131
 
02.03.15
11:09
Обучение программированию по форуму это стало нормой нашего времени?
38 KonstantinK90
 
02.03.15
11:09
ТекущаяСсылка = Справочники.ОсновныеСредства.ПолучитьСсылку();
             НомерПаспортаОбъект = ТекущаяСсылка.ПолучитьОбъект();
             НомерПаспортаОбъект.НомерПаспорта = НоваяСтрока.НомерПТС;
             ТекущаяСсылка.Записать();
39 KonstantinK90
 
02.03.15
11:10
Значение не является значением объектного типа (НомерПаспорта)
             НомерПаспортаОбъект.НомерПаспорта = НоваяСтрока.НомерПТС;
40 salvator
 
02.03.15
11:12
(38) Неправильно. Следующая попытка.
Подсказка: ошибка в первой же строке.
41 D_E_S_131
 
02.03.15
11:12
KonstantinK90, ты в какой элемент справочника ОС хочешь записать "НомерПаспорта"?
42 KonstantinK90
 
02.03.15
11:13
в справочнике есть реквизит номер паспорта в него хочу записать
43 KonstantinK90
 
02.03.15
11:13
тип у него строка
44 salvator
 
02.03.15
11:14
(42) В какой ИМЕННО элемент справочника? Понимаэшь, нэт?
45 Wobland
 
02.03.15
11:14
(42) а какой элемент из тысяч!
46 KonstantinK90
 
02.03.15
11:19
я чет вообще не понимаю
47 salvator
 
02.03.15
11:19
НаборЗаписей.Записать() в цикле - это плохо.
Короче, весь код - большая каша.
48 KonstantinK90
 
02.03.15
11:19
в чем у меня ошибка
49 salvator
 
02.03.15
11:19
(46) Это мы уже поняли.
50 Wobland
 
02.03.15
11:19
(46) а чего хочешь добиться, понимаешь!
51 salvator
 
02.03.15
11:20
(48) Ты можешь внятно объяснить, какая у тебя стоит задача? Не поток сознания, а именно четко описать задачу, оперируя терминами 1С?
52 ВРедная
 
02.03.15
11:21
(48) Господа гусары, молчать! (с)
53 KonstantinK90
 
02.03.15
11:22
есть справочник в нем есть реквизит номер паспорта с типом строка, в него нужно записать из экселя данные
54 hhhh
 
02.03.15
11:22
(48) Справочники.ОсновныеСредства пишешь. Например там 100 элементов в этом справочнике. Нужно ведь какой-то конкретный элемент выбрать.
55 Легат
 
02.03.15
11:22
Надеюсь, ТС не 90 года рождения..
56 KonstantinK90
 
02.03.15
11:26
как обратиться к конкретному справочнику и к конкретному реквизиту и записать в него
57 Wobland
 
02.03.15
11:27
(56) и конкретному элементу
58 Kvant1C
 
02.03.15
11:28
(55) А чем тебе 90-й год не угодил?
59 KonstantinK90
 
02.03.15
11:29
?
60 D_E_S_131
 
02.03.15
11:29
(59) Можешь выложить скриншот формы списка твоего справочника ОС?
61 ВРедная
 
02.03.15
11:30
(56) Тебе надо не к конкретному справочнику обратиться, а конкретному элементу справочника.
Для этого его нужно:

а. найти
б. получить объект
в. установить значения реквизитов
г. записать

Ты из этого делаешь только первый и последние два
62 KonstantinK90
 
02.03.15
11:32
а как на сайт выложить скриншот
63 1976vas
 
02.03.15
11:36
(62) На Фотохостинг выкладываешь любой, а ссылку сюда. Например - http://savepic.org/
64 Kvant1C
 
02.03.15
11:40
65 KonstantinK90
 
02.03.15
11:41
66 D_E_S_131
 
02.03.15
11:44
(65) Вставляй прямую ссылку, без миниатюр. И разрешение сделай покрупнее, а то не видать ничего. И на картинке должна быть просто форма списка без всяких открытых элементов.
67 1976vas
 
02.03.15
11:44
68 KonstantinK90
 
02.03.15
11:47
69 Kvant1C
 
02.03.15
11:48
(68) Организация не заполнена
70 1976vas
 
02.03.15
11:49
(68) Личные данные желательно затирать.
71 KonstantinK90
 
02.03.15
11:51
да не заполнена но когда я рукой нажимаю провести или записасть он же не ругаеться на то что организация не заполнена
72 D_E_S_131
 
02.03.15
11:52
(68) Вот теперь вопрос (надеюсь более понятный) — как мы понимаем, что паспорт "22 ТР 222470" нужно записать именно у IVECO?
73 KonstantinK90
 
02.03.15
11:53
да у ивеко новедь мне нужно не в один справочник записать  а их много
74 1976vas
 
02.03.15
11:54
(73) Вот и вопрос, как ты это организуешь?
75 KonstantinK90
 
02.03.15
11:54
вот это я и пытаюсь у вас спросить
76 Kvant1C
 
02.03.15
11:55
(73) Кого много, справочников или автомобилей?
77 1976vas
 
02.03.15
11:56
(75) У тебя как программа поймет, что надо искать то или иное ОС? Это ячейка в Экселе?
78 KonstantinK90
 
02.03.15
11:56
много авто
79 KonstantinK90
 
02.03.15
11:57
через отбор делаю не могу вот только к справочнику правильно обратиться
80 Kvant1C
 
02.03.15
11:58
(79) Вот здесь, практически твой случай:
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=561541
81 D_E_S_131
 
02.03.15
11:58
(75) У нас? Ну я бы записал этот паспорт во все элементы справочника ОС, т.к. мне пох... куда записывать (а задачу мне не озвучивали).

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

Пока ВыборкаОС.Следующий() Цикл

Если ВыборкаОС.ЭтоГруппа() Тогда
   Продолжить;
КонецЕсли;

СпрОбъект = ВыборкаОС.ПолучитьОбъект();

СпрОбъект.НомерПаспорта = НоваяСтрока.НомерПТС;

СпрОбъект.Записать();

КонецЦикла;

Предупредение("Все заполнено!");
82 Kvant1C
 
02.03.15
12:01
(81) Ой блииин...
Он же щас так и сделает :)
83 D_E_S_131
 
02.03.15
12:06
(82) Ну хоть как-то начнет отличать элемент от множества и ссылку от объекта. А учитывая, что научился скрины выкладывать — это уже на сегодня очень много и можно домой идти.
84 Kvant1C
 
02.03.15
12:09
(83) Ненене, домой ему еще рано, надо еще поисковиком научиться пользоваться :)
2 + 2 = 3.9999999999999999999999999999999...