"Вместо<br>> Спр1=СоздатьОбъект("Справочник.ОС");<br><br>Напишите<br> Спр1=СоздатьОбъект("Справочник.ОсновныеСредства");<br>Название справочника должно соответствовать наименованию в метаданных."
"Вместо<br>> Спр1=СоздатьОбъект("Справочник.ОС");<br><br>Напишите<br> Спр1=СоздатьОбъект("Справочник.ОсновныеСредства");<br>Название справочника должно соответствовать наименованию в метаданных."
"насчет групп, где посмотреть какой группе принадлежит справочник? проверять с помощью спр1.ЭтоГруппа()? В ПолучитьЭлемент() выбрано по умолчанию. Элементы в справочнике есть<br><br>На счет Ос, в программе у меня ОсновныеСредства. Тут просто в качестве примера указывал, поэтому сократил<br><br>Версия 1с 7.70.027, бухгалтерский учет для бюджетных предприятий 7.70.611<br><br>Если использовать Сообщить(спр1.реквизит); то он возвращает значения реквизита, но сам цикл делать ничего не хочет. <br>Может надо указать другое условие. Потому что на ПустоеЗначение() он наверное не реагирует<br><br>"
"бррр, ничего не понятно: итак<br>Спр1.ВыбратьЭлементы();<br>Пока спр1.ПолучитьЭлемент()=1 Цикл<br>Сообщить(спр1.реквизит1);<br>Сообщить(спр1.реквизит2);<br>....<br>КонецЦикла;<br>Метод Сообщить что-то выдаёт при исполнении?<br>Если нет, то у тебя в цикл не заходит программа, а это только лишь при отсутствии элементов справочника такое возможно.<br>На группу надо проверять так:<br>Спр1.ВыбратьЭлементы();<br>Пока спр1.ПолучитьЭлемент()=1 Цикл<br> Если Спр1.ЭтоГруппа()=1 тогда<br> Продолжить;<br> КонецЕсли;<br>...<br>КонецЦикла;"
Метод Сообщить выдает значения реквизитов, но все равно ничего не происходит
"Можно ещё одним способом попробовать:<br>Спр=СоздатьОбъект("Справочник.ОС");<br>Спр1=СоздатьОбъект("Справочник.ОС");<br>спр1.ВыбратьЭлементы();<br>Пока спр1.ПолучитьЭлемент()=1 Цикл<br> а=спр1.реквизит1;<br> б=спр1.реквизит2;<br> если пустоезначение(а)=0 тогда<br> Спр.НайтиЭлемент(Спр1.ТекущийЭлемент());<br> спр.реквизит1=б;<br> спр.реквизит2=а;<br> спр.записать();<br> конецЕсли;<br>конецикла;<br>"
а какие реквизиты поменять хочешь?
> Метод Сообщить выдает значения реквизитов,<br>Значит в тело цикла вы все-таки заходите и спр.получитьэлемент()=1 <br><br><br>> но все равно ничего не происходит<br><br>не происходит замена значений в реквизитах? <br>Ответьте на вопросы<br>1.Если вы просто сделаете перебор элементов справочника (без внесения изменений), то все будет выбираться?<br>2.Вы один раз зашли в тело цикла, сделали изменения значений и сразу вылетели из цикла.<br><br>
Реквизиты обмена одного типа? Если нет, применяйте правила преобразования типа. И не периодические ли они?
"Как оказалось, загвоздка была в том, что этот справочник, принадлежал другому,я это добавил теперь вроде работает, но как-то не очень хорошо не все реквизиты меняет местами. Я добавил пару условий, на то чтобы реквизиты не совпадали, и что Длина строки первого должна быть больше длины второго, но он почемуто как-то хаотично стал менять. В некоторых случаях меняет, но в большинстве записей, если реквизиты подходят под эти условия ничиго почему то не меняет. Вот так процедура выглядит сейчас:<br>Процедура Сформировать()<br> Спис = СоздатьОбъект("СписокЗначений");<br> Спр = СоздатьОбъект("Справочник.ОсновныеСредства");<br> Спр.ИспользоватьВладельца(ВыбФирма);<br> Спр.ВыбратьЭлементы(); <br> Пока Спр.ПолучитьЭлемент()=1 Цикл <br> Состояние("1. " + Спр.Наименование);<br> Если Спр.ПометкаУдаления()=1 Тогда<br> Продолжить;<br> ИначеЕсли Спр.ЭтоГруппа()=1 Тогда<br> Продолжить;<br> ИначеЕсли Спр.КоличественныйУчет=0 Тогда<br> Продолжить; <br> КонецЕсли; <br> Спис.ДобавитьЗначение(Спр.ТекущийЭлемент());<br> КонецЦикла;<br> <br> Для Д = 1 по Спис.РазмерСписка() Цикл<br> ОС = Спис.ПолучитьЗначение(Д);<br> Состояние("2. " + ОС.Наименование);<br> а = ОС.Код;<br> б = ОС.НомерИнвКарт;<br> Если ПустоеЗначение(б) = 0 Тогда<br> Если СтрДлина(а)>СтрДлина(б) Тогда<br> Если а<>б Тогда<br> Спр.НайтиЭлемент(ОС);<br> Спр.Код = б;<br> Спр.НомерИнвКарт = а; <br> Спр.Записать();<br> Сообщить("Обмен: " + ОС.Код + " " + ОС.Наименование+" "+ ОС.НомерИнвКарт); <br> КонецЕсли; <br> КонецЕсли;<br> КонецЕсли;<br> КонецЦикла; <br>КонецПроцедуры<br>"
Порнография какая-то.. )))<br><br>А контроль уникальности как, проходит?<br><br>Например, Если "СтрДлина(а)>СтрДлина(б)" Тогда всяко разно "а<>б"
1C:Лекторий: 16 января 2025 года, начало в 10:00 — Бесплатная онлайн-лекция об особенностях применения НДС на УСН в 2025 году и поддержке в 1С 1C:Лекторий: 21 января 2025 года, начало в 12:00 — Бесплатная онлайн-лекция о зарплатной отчетности за 2024 год - рекомендации по подготовке в 1С:ЗУП ред.3 |
1C:Лекторий: 23 января 2025 года, начало в 10:00 — Бесплатная онлайн-лекция о ККТ - ответы на частые вопросы, применение ставок 5% и 7% на УСН 1C:Лекторий: 28 января 2025 года, начало в 12:00 — Бесплатная онлайн-лекция о рисках для вашего бизнеса по Закону №152-ФЗ «О персональных данных» в 2025 году |