powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / 1C записать в справочник
17 сообщений из 17, страница 1 из 1
1C записать в справочник
    #34409267
svetolux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть данные а Экселе. Как записать элемент в справочник в 1С. У меня такой код

Регион=Документ.Sheets(НомерЛиста).Cells(НомерСтроки,2).Value;
Если НЕ ПустаяСтрока(Регион) Тогда
РУП_Регион=Справочники.РУП_Регион;
РУП_РегионТек=РУП_Регион.НайтиПоНаименованию(СокрЛП(Регион));
Если РУП_РегионТек=РУП_Регион.ПустаяСсылка()Тогда
Сообщить("новый Регион "+ Регион);
РУП_Регион=РУП_Регион.СоздатьЭлемент();
РУП_Регион.Наименование=СокрЛП(Регион);
КонецЕсли;

Попытка
Справочники.РУП_Регион.Наименование.Записать();
исключение

Сообщить("Не удалось записать в справочник регион" + Справочники.РУП_Регион.Наименование, СтатусСообщения.Важное);
возврат;
КонецПопытки;
КонецЕсли;

Но выдается ошибка, не найдено поле наименования. А это поле есть по-любому. Оно создается по умолчанию.

Что не так в коде
...
Рейтинг: 0 / 0
1C записать в справочник
    #34409357
gybson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЧТО НЕ ТАК?????????????????????????????

Откровенно говоря вообще все не так. Это же не vbs.

НовыйЭлемент = Справочники.РУП_Регион.Новый();
НовыйЭлемент.Наименование = Регион;
НовыйЭлемент.Записать();
...
Рейтинг: 0 / 0
1C записать в справочник
    #34409395
svetolux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gybsonЧТО НЕ ТАК?????????????????????????????

Откровенно говоря вообще все не так. Это же не vbs.

НовыйЭлемент = Справочники.РУП_Регион.Новый();
НовыйЭлемент.Наименование = Регион;
НовыйЭлемент.Записать();

Мне не нужно создавать справочник. Он уже создан. Из экзелевского файла нужно в наименование справочника добавить записи.
...
Рейтинг: 0 / 0
1C записать в справочник
    #34409406
gybson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне не нужно создавать справочник. Он уже создан. Из экзелевского файла нужно в наименование справочника добавить записи.


Регион=Документ.Sheets(НомерЛиста).Cells(НомерСтроки,2).Value;
Если НЕ ПустаяСтрока(Регион) Тогда
РУП_Регион=Справочники.РУП_Регион;
РУП_РегионТек=РУП_Регион.НайтиПоНаименованию(СокрЛП(Регион));
Если РУП_РегионТек=РУП_Регион.ПустаяСсылка()Тогда
Сообщить("новый Регион "+ Регион);
РУП_Регион=РУП_Регион.СоздатьЭлемент();
Иначе
РУП_Регион = РУП_Регион.ПолучитьОбъект();
КонецЕсли;
РУП_Регион.Наименование=СокрЛП(Регион);


Попытка
РУП_Регион.Записать();
исключение

Сообщить("Не удалось записать в справочник регион" + Справочники.РУП_Регион.Наименование, СтатусСообщения.Важное);
возврат;
КонецПопытки;
КонецЕсли;
...
Рейтинг: 0 / 0
1C записать в справочник
    #34409432
Menahem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svetolux
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
	  		РУП_Регион=Справочники.РУП_Регион;
			РУП_Регион=РУП_Регион.СоздатьЭлемент();
...
			РУП_Регион.Наименование=СокрЛП(Регион);
			КонецЕсли;
...			
			Попытка 
       Справочники.РУП_Регион.Наименование.Записать();
	исключение
....



Гм... А что Вам помешало написать приблизительно так:
Код: plaintext
1.
2.
3.
4.
5.
РУП_Регион=СоздатьОБъект("Справочники.РУП_Регион");
...
РУП_Регион.Новый();
РУП_Регион.Наименование = СокрЛП(Регион);
...
РУП_Регион.Записать();
?
...
Рейтинг: 0 / 0
1C записать в справочник
    #34409437
Menahem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svetolux ...
Мне не нужно создавать справочник. Он уже создан. Из экзелевского файла нужно в наименование справочника добавить записи.

Вы не поняли. Для обращения к справочнику Вам нужно создать объект-указатель на него.
...
Рейтинг: 0 / 0
1C записать в справочник
    #34409500
Answer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То Menahem. Судя по задействованным операторам автор работает в 8, а не в 7.
То svetolux. В 8 для программного создания нового элемента справочника надо делать как написал gybson.
...
Рейтинг: 0 / 0
1C записать в справочник
    #34409503
svetolux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gybson
Мне не нужно создавать справочник. Он уже создан. Из экзелевского файла нужно в наименование справочника добавить записи.


Регион=Документ.Sheets(НомерЛиста).Cells(НомерСтроки,2).Value;
Если НЕ ПустаяСтрока(Регион) Тогда
РУП_Регион=Справочники.РУП_Регион;
РУП_РегионТек=РУП_Регион.НайтиПоНаименованию(СокрЛП(Регион));
Если РУП_РегионТек=РУП_Регион.ПустаяСсылка()Тогда
Сообщить("новый Регион "+ Регион);
РУП_Регион=РУП_Регион.СоздатьЭлемент();
Иначе
РУП_Регион = РУП_Регион.ПолучитьОбъект();
КонецЕсли;
РУП_Регион.Наименование=СокрЛП(Регион);


Попытка
РУП_Регион.Записать();
исключение

Сообщить("Не удалось записать в справочник регион" + Справочники.РУП_Регион.Наименование, СтатусСообщения.Важное);
возврат;
КонецПопытки;
КонецЕсли;

Не-а, не работает

не находит ПолучитьОбъект();
...
Рейтинг: 0 / 0
1C записать в справочник
    #34409524
svetolux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AnswerТо Menahem. Судя по задействованным операторам автор работает в 8, а не в 7.
То svetolux. В 8 для программного создания нового элемента справочника надо делать как написал gybson.

А конкретный примерчик можно?
...
Рейтинг: 0 / 0
1C записать в справочник
    #34409598
RedBird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Регион=Документ.Sheets(НомерЛиста).Cells(НомерСтроки, 2 ).Value;
Если НЕ ПустаяСтрока(Регион) Тогда

	РУП_Регион=Справочники.РУП_Регион;
	РУП_РегионТек=РУП_Регион.НайтиПоНаименованию(СокрЛП(Регион));

	Если РУП_РегионТек=РУП_Регион.ПустаяСсылка()Тогда
		Сообщить("новый Регион "+ Регион);
		РУП_Регион=РУП_Регион.СоздатьЭлемент();
		РУП_Регион.Наименование=СокрЛП(Регион);
	КонецЕсли;
			
	Попытка 
		РУП_Регион.Записать();
	исключение
		Сообщить("Не удалось записать в справочник регион" +
			Справочники.РУП_Регион.Наименование, СтатусСообщения.Важное);
		возврат;
	КонецПопытки;

КонецЕсли;
Метода записать у поля типа "Строка" нет.
Метод записать в вашем коде есть у переменной РУП_Регион, т.к. ее тип "СправочникОбъект" (если мне не изменяет память...).
...
Рейтинг: 0 / 0
1C записать в справочник
    #34409606
RedBird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MenahemГм... А что Вам помешало написать приблизительно так:
Код: plaintext
1.
2.
3.
4.
5.
РУП_Регион=СоздатьОБъект("Справочники.РУП_Регион");
...
РУП_Регион.Новый();
РУП_Регион.Наименование = СокрЛП(Регион);
...
РУП_Регион.Записать();
?
В 8.х функцию СоздатьОБъект() изъяли!
...
Рейтинг: 0 / 0
1C записать в справочник
    #34409826
svetolux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RedBird
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Регион=Документ.Sheets(НомерЛиста).Cells(НомерСтроки, 2 ).Value;
Если НЕ ПустаяСтрока(Регион) Тогда

	РУП_Регион=Справочники.РУП_Регион;
	РУП_РегионТек=РУП_Регион.НайтиПоНаименованию(СокрЛП(Регион));

	Если РУП_РегионТек=РУП_Регион.ПустаяСсылка()Тогда
		Сообщить("новый Регион "+ Регион);
		РУП_Регион=РУП_Регион.СоздатьЭлемент();
		РУП_Регион.Наименование=СокрЛП(Регион);
	КонецЕсли;
			
	Попытка 
		РУП_Регион.Записать();
	исключение
		Сообщить("Не удалось записать в справочник регион" +
			Справочники.РУП_Регион.Наименование, СтатусСообщения.Важное);
		возврат;
	КонецПопытки;

КонецЕсли;
Метода записать у поля типа "Строка" нет.
Метод записать в вашем коде есть у переменной РУП_Регион, т.к. ее тип "СправочникОбъект" (если мне не изменяет память...).

Пишет
{Форма.Форма(27)}: Поле объекта не обнаружено (Наименование)
Сообщить("Не удалось записать в справочник регион" + Справочники.РУП_Регион.Наименование, СтатусСообщения.Важное);

Что делать?
...
Рейтинг: 0 / 0
1C записать в справочник
    #34409835
svetolux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gybsonЧТО НЕ ТАК?????????????????????????????

Откровенно говоря вообще все не так. Это же не vbs.

НовыйЭлемент = Справочники.РУП_Регион.Новый();
НовыйЭлемент.Наименование = Регион;
НовыйЭлемент.Записать();


В первой строчке Свойства Новый в выпадающем списке нет
...
Рейтинг: 0 / 0
1C записать в справочник
    #34409890
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если это v 8.0/8.1 , то
Ctrl+F1=
СправочникМенеджер.<Имя справочника> (CatalogManager.<Имя справочника>)
СоздатьЭлемент (CreateItem)
Синтаксис:
СоздатьЭлемент()
Возвращаемое значение:
Тип: СправочникОбъект.
Описание:
Создает новый элемент справочника.
Примечание:
Использование метода не приводит к записи созданного объекта в базу данных.
Пример:
НовыйОбъект = Справочники.Валюты.СоздатьЭлемент();
НовыйОбъект.Код = "840";
НовыйОбъект.Наименование = "USD";
НовыйОбъект.ПолноеНаименование = "Доллары США";
НовыйОбъект.Записать();

полный код см.пост 16:56
...
Рейтинг: 0 / 0
1C записать в справочник
    #34409912
brahma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Там небольшая ошибка. Вот так вроде должно работать:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Регион=Документ.Sheets(НомерЛиста).Cells(НомерСтроки, 2 ).Value;
Если НЕ ПустаяСтрока(Регион) Тогда
  РУП_Регион=Справочники.РУП_Регион;
  РУП_РегионТек=РУП_Регион.НайтиПоНаименованию(СокрЛП(Регион));
  Если РУП_РегионТек=РУП_Регион.ПустаяСсылка()Тогда
    Сообщить("новый Регион "+ Регион);
    РУП_РегионОбъект=РУП_Регион.СоздатьЭлемент();
  Иначе
    РУП_РегионОбъект = РУП_РегионТек.ПолучитьОбъект();
  КонецЕсли;
  РУП_РегионОбъект.Наименование=СокрЛП(Регион);


  Попытка
    РУП_РегионОбъект.Записать();
  Исключение
    Сообщить("Не удалось записать в справочник регион" + РУП_РегионОбъект.Наименование, СтатусСообщения.Важное);
    Возврат;
  КонецПопытки;
КонецЕсли;
...
Рейтинг: 0 / 0
1C записать в справочник
    #34409937
svetolux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
brahmaТам небольшая ошибка. Вот так вроде должно работать:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Регион=Документ.Sheets(НомерЛиста).Cells(НомерСтроки, 2 ).Value;
Если НЕ ПустаяСтрока(Регион) Тогда
  РУП_Регион=Справочники.РУП_Регион;
  РУП_РегионТек=РУП_Регион.НайтиПоНаименованию(СокрЛП(Регион));
  Если РУП_РегионТек=РУП_Регион.ПустаяСсылка()Тогда
    Сообщить("новый Регион "+ Регион);
    РУП_РегионОбъект=РУП_Регион.СоздатьЭлемент();
  Иначе
    РУП_РегионОбъект = РУП_РегионТек.ПолучитьОбъект();
  КонецЕсли;
  РУП_РегионОбъект.Наименование=СокрЛП(Регион);


  Попытка
    РУП_РегионОбъект.Записать();
  Исключение
    Сообщить("Не удалось записать в справочник регион" + РУП_РегионОбъект.Наименование, СтатусСообщения.Важное);


СУПЕР!!! Работает! ОГРОМНОЕ СПАСИБО
    Возврат;
  КонецПопытки;
КонецЕсли;
...
Рейтинг: 0 / 0
1C записать в справочник
    #34412183
gybson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну скажите спасибо, что я вам Сишного синтаксиса не добавил :) Голова кругом уже :)
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / 1C записать в справочник
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]