Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
20 мая 2024, 02:14

Почему? Я не пойму му му му...

Автор Roman Korotaew, 28 фев 2018, 23:13

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

Roman Korotaew

// Почему так работает
     СпрНом = Справочники.Номенклатура.СоздатьЭлемент();
     СпрНом.Наименование = "Снеговик";
СпрНом.Записать();
// А вот так нет???
     Справочники.Номенклатура.СоздатьЭлемент();
     Справочники.Номенклатура.СоздатьЭлемент().Наименование = "Снеговик";
Справочники.Номенклатура.СоздатьЭлемент().Записать();
Жизнь - большое приключение.

Roman Korotaew

И ведь я читал пример в СП, и не придал значения.
Жизнь - большое приключение.

Поиск родных

Цитата: Roman Korotaew от 28 фев 2018, 23:22
И ведь я читал пример в СП, и не придал значения.
а надо придавать все значения, и одному созданному элементу, а не трём
Но не придавать

AIFrame

Цитата: Roman Korotaew от 28 фев 2018, 23:13
// Почему так работает

Представь, что ты звонишь в техподдержку.
// Так работает
Техподдержка = Телефон.Взять.ПозвонитьВТехПоддержку();
Техподдержка.Вопрос = "У меня все сломалось";
Техподдержка.ПолучитьОтвет();

// А так не работает
Телефон.Взять.ПозвонитьВТехПоддержку();
Телефон.Взять.ПозвонитьВТехПоддержку().Вопрос = "У меня все сломалось";
Телефон.Взять.ПозвонитьВТехПоддержку().ПолучитьОтвет();

Roman Korotaew

Надо над этим подумать... Спасибо!
Жизнь - большое приключение.

Поиск родных

Цитата: Roman Korotaew от 28 фев 2018, 23:13
// Почему так работает
     СпрНом = Справочники.Номенклатура.СоздатьЭлемент();
     СпрНом.Наименование = "Снеговик";
СпрНом.Записать();
// А вот так нет???
     Справочники.Номенклатура.СоздатьЭлемент();
     Справочники.Номенклатура.СоздатьЭлемент().Наименование = "Снеговик";
Справочники.Номенклатура.СоздатьЭлемент().Записать();


Потому что в "А вот так нет???"
Вы создаёте один элемент - пустой, потом - второй, у которого заполняте только Наименование, а потом на лету пытаетсь создать и записать третий пустой.
В первом и третьем случае точно будет ошибка, т.к. элемент справочника не может быть записан с незапоненным наименованием.

Во 2м случае всё зависит от конфигурации - есть ли в ней автозаполнение незаполненных обязательных реквизитов перед записью создаваемых новых элементов
В типовых конфигурациях - должен записаться

Но из кода Вы уже не сможете что-то делать с созданным элементом, т.к. переменная со ссылкой созданный на элемент не создана
Добавлено: 01 мар 2018, 10:48


Цитата: Геннадий ОбьГЭС от 01 мар 2018, 10:26
В типовых конфигурациях - должен записаться
Ой, то-то я затупил.

Ни в каком случае Вы не сможете ни заполнить, ни даже попытаться записать созданные элементы, ни использовать их, , т.к. в коде Вы не получили (в переменную) ссылку на созданный элемент (вернее, три разных элемента).

Такие объекты (без ссылок)  называются мусором и в других средах разработки/выполнения их уничтожением (garbage collecting) занимаются сборщики мусора
(garbage collectors)

Roman Korotaew

Жизнь - большое приключение.

Теги:
Рейтинг@Mail.ru

Поиск