Бухгалтерский учет, налогообложение, отчетность, МСФО, анализ бухгалтерской информации, 1С:Бухгалтерия

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

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

Глюк в конфе или у меня в котелке?

Marat
читатель
офлайн
Дата регистрации: 05.01.2003
Сообщений: 32
Пост №1
 
26.05.2003 17:20

"В модуле формы:

Процедура Заполнить()

УдалитьСтроки();

О = СоздатьОбъект("Операция");

О.ВыбратьОперацииСПроводками(НачМесяца(ДатаДок),КонМесяца(ДатаДок),СчетПоКоду("25"),СчетПоКоду("01.1"));

Пока О.ПолучитьОперацию() = 1 Цикл

НоваяСтрока();

Док = О.Документ;



ругается, грит примените метод .ТекущийДокумент()



Понимаю, что лажа, но пробую. Прокатило.



В модуле проведения:

Операция.НоваяПроводка() - Модуль Документа(5)}: Недопустимая операция



Подобные вещи делал сотни раз. Такое впервые.

На днях поставил 20-й движок и 434 релиз.







"

Ягода
читатель
офлайн
Дата регистрации: 23.05.2003
Сообщений: 9
Пост №2
 
28.05.2003 11:43

"Да вообще-то не глюк, а особенность работы объектов типа "Справочник", "Документ" и других, которые допускают перебор значений (типа .ПолучитьЭлемент()). Вероятно, в целях оптимизации при выполнении:

О=СоздатьОбъект("Операция");

О.ВыбратьЭлементы();

О.ПолучитьЭлемент();

П=О.Документ;

В последней строке в переменную П передается ссылка на О и относительная ссылка (внутри О) на Документ.

Поэтому если надо сохранить в какой-то переменной конкретное значение, лучше всегда использовать .ТекущийЭлемент() и .ТекущийДокумент().

Так надежнее. Кстати, допустимо многократное

.ТекущийДокумент().ТекущийДокумент().ТекущийДокумент();

:) Это нормально проходит!

Поэтому, когда функция (или процедура на входе использует конкретное значение (документ, справочник или еще чего) не вредно внутри функции, для того, чтобы это точно не был объект, выполнить .ТекущийЭлемент().

Примерно так:

Процедура Моя(НужныйЭлемСправочника);

Перем НастоящийЭлемент;

НастоящийЭлемент=НужныйЭлемСправочника.ТекущийЭлемент();

// и дальше работать с НастоящийЭлемент

Всего хорошего."

Marat
читатель
офлайн
Дата регистрации: 05.01.2003
Сообщений: 32
Пост №3
 
28.05.2003 15:41

"О=СоздатьОбъект("Операция");

О.ВыбратьЭлементы();

А ты ничего не напутал? Объект "Операция", а не "Справочник".

О.ВыбратьОперации().

Конструкцию описанную мной, я применял неоднократно и без проблем.

Только что пришла мысль попробовать:

Спр = СоздатьОбъект("Справочник.ХХХ");

Спр.ВыбратьДокументы()



Если это сработает, то 1с это лажа полнейшая.

"

Ягода
читатель
офлайн
Дата регистрации: 23.05.2003
Сообщений: 9
Пост №4
 
30.05.2003 12:04

"Тут меня поправили (ну ошибся!). Конечно надо:

О=СоздатьОбъект("Операция");

О.ВыбратьОперации();

О.ПолучитьОперацию();

Но сам принцип, я думаю понятен. Вообще следует отличать объект, через который можно получить доступ к конкретному документу, эл. справочника (и т.д.) и значение с с таким типом. Значение не допускает использовать методы (может не все - не помню), а объект лучше использовать в правой части присваивания с "освобождением от объекта": .ТекущийЭлемент() или .ТекущийДокумент().

Я так делаю всегда, но это стиль программирования, например далеко не все объявляют переменные и пишут коментарии. Мне кажется, что лучше написать 1-2 десятка лишних команд, чем потом искать глюки."

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

Читают тему:

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

1С бесплатно 1С-Отчетность 1С:ERP Управление предприятием 1С:Бесплатно 1С:Бухгалтерия 8 1С:Бухгалтерия 8 КОРП 1С:Бухгалтерия автономного учреждения 1С:Бухгалтерия государственного учреждения 1С:Бюджет муниципального образования 1С:Бюджет поселения 1С:Вещевое довольствие 1С:Деньги 1С:Документооборот 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и кадры государственного учреждения 1С:Зарплата и управление персоналом 1С:Зарплата и управление персоналом КОРП 1С:Комплексная автоматизация 8 1С:Лекторий 1С:Предприятие 1С:Предприятие 7.7 1С:Предприятие 8 1С:Розница 1С:Управление нашей фирмой 1С:Управление производственным предприятием 1С:Управление торговлей 1СПредприятие 8

Все теги