Метод Прочитать() в менеджере записи

1. user1202776 26.11.19 13:33 Сейчас в теме
В регистре сведений ищу запись и почему-то НовыйШК.Выбран() возвращает ложь.В самом РС в отборах вбиваю значения НовыйШК.Владелец и НовыйШК.ЕдиницаИзмерения в отладчике и РС показывает, что такая запись есть.
	НовыйШК = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи();
				НовыйШК.Владелец = СтрокаДанных.Номенклатура;
				НовыйШК.ЕдиницаИзмерения			= СтрНайденнаяЕдиница.ЕдиницаВБазе;
				НовыйШК.Прочитать();

Что делаю не так?
По теме из базы знаний
Найденные решения
16. herfis 513 26.11.19 14:22 Сейчас в теме
НовыйШК = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей();
НовыйШК.Отбор.Владелец.Установить(СтрокаДанных.Номенклатура);
НовыйШК.Отбор.ЕдиницаИзмерения.Установить(СтрНайденнаяЕдиница.ЕдиницаВБазе);
НоваяЗапись=НовыйШК.Добавить();
НоваяЗапись.Владелец                    = СтрокаДанных.Номенклатура;
НоваяЗапись.ХарактеристикаНоменклатуры    = СтрокаДанных.ХарактеристикаНоменклатуры;
НоваяЗапись.Штрихкод                    = СтрНайденнаяЕдиница.Штрихкод;
НоваяЗапись.ТипШтрихкода                = ОпределитьТипШтрихкода(СтрНайденнаяЕдиница.Штрихкод);
НоваяЗапись.ЕдиницаИзмерения            = СтрНайденнаяЕдиница.ЕдиницаВБазе;
НоваяЗапись.Качество                    = Справочники.Качество.Новый;
НовыйШК.Записать();
Показать
danjer74; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. danjer74 4 26.11.19 13:40 Сейчас в теме
(1)Может, набор записей лучше использовать? Наложить два отбора и все. Или запросом :)
user1202776; herfis; FetisovAN; +3 Ответить
2. Alexei_Siva 199 26.11.19 13:35 Сейчас в теме
Если там еще какие-то измерения есть, то их тоже надо указать перед чтением
user1202776; +1 Ответить
3. user1202776 26.11.19 13:39 Сейчас в теме
(2)то есть перед прочтением записи из РС, нужно всем измерениям РС присвоить значения?
5. FetisovAN 26.11.19 13:41 Сейчас в теме
А почему не используете набор записей ? Сделали отбор по владельцу - всё получили, сделали отбор по владельцк и единицы получите соотв. записи или запись если она одна
user1202776; herfis; danjer74; +3 Ответить
7. herfis 513 26.11.19 13:51 Сейчас в теме
(3) А как иначе ты получишь конкретную запись? Или тебя устроит первая попавшаяся? :)
8. user1202776 26.11.19 13:53 Сейчас в теме
(7)первая попавшаяся с заданной номенклатурой и единицей измерения)
9. herfis 513 26.11.19 13:56 Сейчас в теме
(8) Тогда, как уже сказали, тебе надо работать через НаборЗаписей.
Полученные по отбору записи в наборе будешь очищать и записывать новые из эксель.
19. Alexei_Siva 199 26.11.19 21:48 Сейчас в теме
(3)Если не присвоить - остальные будут считаться пустыми
6. user1202776 26.11.19 13:46 Сейчас в теме
(2) Допустим у номенклатуры "123", с единицей измерения штук , в РС есть запись с типом штрих-кода EAN13, через файл Excel мне нужно заменить штрих-код этот штрих-код на штрих-код с типом EAN128. Если искать по всем измерениям РС,то у них типы штрих-кодов будет разными уже существующий штрих-код номенклатуры. Как прочитать запись уже существующего штрих-кода этой номенклатуры и заменить?
10. herfis 513 26.11.19 14:02 Сейчас в теме
МенеджерЗаписи - это объект более узкого назначения, чем НаборЗаписей. Им можно только с конкретной записью работать.
Обычно через него пишут. Это безопаснее, чем писать через набор. В наборе забыл указать одно из измерений и приплыли :)
user1202776; +1 Ответить
11. user1202776 26.11.19 14:08 Сейчас в теме
(10)МенеджерЗаписи при записи чаще используют потому что , если не указал одно измерение,то вообще ничего не произойдет в РС?
12. herfis 513 26.11.19 14:13 Сейчас в теме
(11) Почему. Если можно писать пустые значения, то запишет. Просто другие записи останутся в безопасности :) А набор записей по дефолту пишется в режиме замещения. По отбору прибьет все что было.
15. user1202776 26.11.19 14:18 Сейчас в теме
(12)
	 		НовыйШК = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей();
					НовыйШК.Отбор.Владелец.Установить(СтрокаДанных.Номенклатура);
					НовыйШК.Отбор.ЕдиницаИзмерения.Установить(СтрНайденнаяЕдиница.ЕдиницаВБазе);
				НовыйШК.Прочитать();
			
			Если НовыйШК.Выбран() Тогда
				НоваяЗапись=НовыйШК.Добавить();
				НоваяЗапись.Владелец					= СтрокаДанных.Номенклатура;
				НоваяЗапись.ХарактеристикаНоменклатуры	= СтрокаДанных.ХарактеристикаНоменклатуры;
				НоваяЗапись.Штрихкод					= СтрНайденнаяЕдиница.Штрихкод;
				НоваяЗапись.ТипШтрихкода				= ОпределитьТипШтрихкода(СтрНайденнаяЕдиница.Штрихкод);
				НоваяЗапись.ЕдиницаИзмерения			= СтрНайденнаяЕдиница.ЕдиницаВБазе;
				НоваяЗапись.Качество					= Справочники.Качество.Новый;
				НовыйШК.Записать(Истина);
КонецЕсли;
Показать

сделал так. Существующую запись в РС не замещает, а создает новую.Что делаю не так?
13. herfis 513 26.11.19 14:14 Сейчас в теме
Самый простой способ очистить регистр сведений - записать пустой набор записей без отборов.
14. herfis 513 26.11.19 14:14 Сейчас в теме
Речь про независимые регистры, ессно. У зависимых все к регистратору прибито.
16. herfis 513 26.11.19 14:22 Сейчас в теме
НовыйШК = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей();
НовыйШК.Отбор.Владелец.Установить(СтрокаДанных.Номенклатура);
НовыйШК.Отбор.ЕдиницаИзмерения.Установить(СтрНайденнаяЕдиница.ЕдиницаВБазе);
НоваяЗапись=НовыйШК.Добавить();
НоваяЗапись.Владелец                    = СтрокаДанных.Номенклатура;
НоваяЗапись.ХарактеристикаНоменклатуры    = СтрокаДанных.ХарактеристикаНоменклатуры;
НоваяЗапись.Штрихкод                    = СтрНайденнаяЕдиница.Штрихкод;
НоваяЗапись.ТипШтрихкода                = ОпределитьТипШтрихкода(СтрНайденнаяЕдиница.Штрихкод);
НоваяЗапись.ЕдиницаИзмерения            = СтрНайденнаяЕдиница.ЕдиницаВБазе;
НоваяЗапись.Качество                    = Справочники.Качество.Новый;
НовыйШК.Записать();
Показать
danjer74; +1 Ответить
17. herfis 513 26.11.19 14:26 Сейчас в теме
А делаешь не так - добавляешь запись к уже прочитанным. В итоге пишешь и те что были и свою новую.
Можно предварительно очищать старые.
Но проще вообще их не читать.
Тогда запишется только твоя в режиме замещения по отборам.
user1202776; +1 Ответить
18. user1202776 26.11.19 14:28 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот