Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

обработка

andreyyy
читатель
офлайн
Дата регистрации: 09.10.2007
Сообщений: 21
Пост №1
 
11.10.2007 02:16

Как сделать чтобы обработка обращалась к записям в справочнике. Метод ВыбратьЭлемент не работает, возвращает 0, хотя в справочнике куча записей.Других я вроде не обнаружил. Какой лучше метод использовать для этого?

Мозголом
читатель
офлайн
Дата регистрации: 27.02.2007
Сообщений: 145
Пост №2
 
11.10.2007 05:27

"Я так понял, что Вам нужен просто тупо перебор?<br><br>Спр = СоздатьОбъект("Справочник.Какой-нибудь");<br>Спр.ВыбратьЭлементы();<br>Пока Спр.ПолучитьЭлемент() = 1 Цикл<br> //Здесь что-то происходит типа<br> Какая-тоПеременная = Спр.Какой-тоРеквизит;<br> ...<br>КонецЦикла;<br><br>Попробуйте, может получится!"

andreyyy
читатель
офлайн
Дата регистрации: 09.10.2007
Сообщений: 21
Пост №3
 
11.10.2007 07:46

Я так и делал, но обработка не хочет перебирать. В отладчике пишет, что Спр.ВыбратьЭлементы()=0 и не выполняет действия в теле цикла. Других методов для перебора я не нашел. Может дело в справочнике, хотя в нем присуствуют записи.

Vladko
читатель
офлайн
Дата регистрации: 27.08.2007
Сообщений: 2649
Пост №4
 
12.10.2007 10:12

приведи пример твоей обработки и всё станет ясно.<br>Телепатией не занимаемся :-/

Prikum
активный пользователь
офлайн
Дата регистрации: 18.02.2002
Сообщений: 20953
Пост №5
 
12.10.2007 17:07

"Он и не выполняеть, пример выше :<br>Спр.ВыбратьЭлементы();<br>перебор элементов осуществляеться с помощью Спр.ПолучитьЭлемент(); Надо читать ЖКК!"

andreyyy
читатель
офлайн
Дата регистрации: 09.10.2007
Сообщений: 21
Пост №6
 
12.10.2007 20:25

"Вот моя обработка:<br><br>Спр1=СоздатьОбъект("Справочник.ОС");<br>спр1.ВыбратьЭлементы();<br>Пока спр1.ПолучитьЭлемент()=1 Цикл<br>переменная=Ос.реквизит; (например)<br>конецикла;<br><br>Мне нужно чтобы обработка, выбрала элемент, взяла 2 реквизита и если они оба не пустые, то поменяла местами их значения.(там либо оба не пустые, либо один пустой)<br>В теле цикла такое:<br>а=спр1.реквизит1;<br>б=спр1.реквизит2;<br>если пустоезначение(а)=0 тогда<br>спр1.риквизит1=б;<br>спр1.реквизит2=а;<br>спр1.записать;<br>конецЕсли;<br><br>Где сдесь может быть ошибка?<br>"

N@talia
читатель
офлайн
Дата регистрации: 20.09.2007
Сообщений: 177
Пост №7
 
13.10.2007 10:35

"На первый взгляд..<br>переменная=Ос.реквизит; => что есть "Ос"?<br><br>спр1.записать();"

andreyyy
читатель
офлайн
Дата регистрации: 09.10.2007
Сообщений: 21
Пост №8
 
15.10.2007 01:04

"не Ос, а спр1. Писал по памяти, вот и ошибся.<br>скобки тоже не дописал. Короче код выглядит следующим образом:<br><br>Спр1=СоздатьОбъект("Справочник.ОС");<br>спр1.ВыбратьЭлементы();<br>Пока спр1.ПолучитьЭлемент()=1 Цикл<br><br>а=спр1.реквизит1;<br>б=спр1.реквизит2;<br>если пустоезначение(а)=0 тогда<br>спр1.риквизит1=б;<br>спр1.реквизит2=а;<br>спр1.записать();<br><br>конецЕсли;<br>конецикла;<br><br>Вероятно ошибка в цикле, но пробовал по другому:<br><br>Спр1=СоздатьОбъект("Справочник.ОС");<br>спр1.ВыбратьЭлементы();<br>Пока спр1.ПолучитьЭлемент()=1 Цикл<br><br>если пустоезначение(спр1.реквизит2)=0 тогда<br>спр1.реквизит1=спр1.реквизит2;<br>спр1.записать();<br><br>конецЕсли;<br>конецикла;<br><br>Этот цикл тоже не хочет менять реквизиты <br><br>А может не работать от того, что реквизиты находятся на форме элемента справочника, а не на форме списка? Если да, то как можно обратиться к реквизитам формы элемента?"

QDeSnic
читатель
офлайн
Дата регистрации: 12.04.2007
Сообщений: 98
Пост №9
 
15.10.2007 06:59

У тебя в справочнике точно есть какие нибудь элементы?<br>Метод ПолучитьЭлемент() возвращает 0 - когда нет элементов<br>А группы у тебя в справочнике есть? Если да то надо ещё и проверку на элемент-группу сделать (тебе же в группе ничего менять не надо)<br>И ещё если группы есть то в ПолучитьЭлемент(<Режим>), какой выбран 1 или 0 (или же по умолчанию, т.е. 1)?<br>Да и вообще неплохо бы указать версию платформы (да и базы непомешает)

N@talia
читатель
офлайн
Дата регистрации: 20.09.2007
Сообщений: 177
Пост №10
 
15.10.2007 11:37

"Пока спр1.ПолучитьЭлемент()=1 Цикл<br>Сообщить(спр1.реквизит1);<br>Сообщить(спр1.реквизит2);<br><br><br>Что-нить сообщает?"

Показывать по 10 20 40 сообщений

Читают тему:

Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация