Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
16 Дек 2017, 00:48
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Обойти стандартные реквизиты регистра бухгалтерии и получить значения через OLE  (Прочитано 6661 раз)

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

Оффлайн NikOzn

  • *
  • Сообщений: 17
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-01-17
  • Сайт: 
  • Профессия: Ученик 1С
Работаю с 1С8.2 из Delphi через OLE.
Просматриваю содержание регистра Бухгалтерии, который зовется Хозрасчетный (он единственный в коллекции РегистрыБухгалтерии).
Получаю перечень свойств регистра, среди которых есть "СтандартныеРеквизиты".
Когда просматриваю его через конфигуратор, то вижу, что в нем 10 элементов: Период, Регистратор, НомерСтроки, Активность, Счет, ВидСубконто1, ВидСубконто2, ВидСубконто3, активов и пассивов в разрезе конкретных сущностей. ...">Субконто1, Субконто2, Субконто3.

Ссылку на объект "СтандартныеРеквизиты" я получаю через последовательность следующих строк кода:
FOle_1C8 путем создания объект V82.COMConnector;
FMeta8_Ole := FOle_1C8.Метаданные.РегистрыБухгалтерии;
F1C8_Obj := FMeta8_Ole.Найти('Хозрасчетный');
StandardAttributes  := F1C8_Obj.СтандартныеРеквизиты;

После этого я получаю количество реквизитов (ровно те самые 10 штук):
kAttribCount := StandardAttributes.Количество()*1;

и затем пытаюсь обойти их, имея намерение узнать из значения в цикле
  for k := kAttribCount-1 downto 0 do
    begin
      // Получаем ссылку на реквизит справочника (по его индексу)
      vAttrib := StandardAttributes.Получить(k);
      ...
    end;

Но конструкция StandardAttributes.Получить(k) не работает! Не помогает также
попытка образовать цикл вида

  while StandardAttributes.Следующий() do
    begin
      ...
    end;

Как мне реализовать обход стандартных реквизитов регистра бухгалтерии?
Если это возможно (иначе на фиг они нужны-то!), то как потом получить из значение?



Оффлайн NikOzn

  • *
  • Сообщений: 17
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-01-17
  • Сайт: 
  • Профессия: Ученик 1С
К админам форума.
В это окошко можно воткнуть только несколько строк, после чего оно скачет и с ним управиться невозможно. Это только у меня или это такой "интеллект форума"? И еще. Почему сообщения странно форматируются (по центру). Это так надо или опять я только у меня все криво смотрится?

Оффлайн sergejK74

  • *****
  • Сообщений: 1093
  • РЕПУТАЦИЯ: 458
  • КПД: 42%
  • Всегда готов помочь!
  • Регистрация: 2011-07-08
  • Сайт: 
  • Профессия: Ученик 1С
vAttrib := StandardAttributes[k];   
Ты бы описал подробнее что ты хочешь получить от регистра Бухгалтерии, который зовется Хозрасчетный? Описания его стандартных реквизитов?
Кнопочка Спасибо - слева!

Оффлайн NikOzn

  • *
  • Сообщений: 17
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-01-17
  • Сайт: 
  • Профессия: Ученик 1С
vAttrib := StandardAttributes[k];   
Ты бы описал подробнее что ты хочешь получить от регистра Бухгалтерии, который зовется Хозрасчетный? Описания его стандартных реквизитов?
Вроде бы я написал: 1) пройтись по всем реквизитам (стандартным, которые я подглядел в конфигураторе), т.е. получить все 10 ссылок на них, и 2) получить их значения; полагаю, что из этих ссылок их можно получить, но может, я ошибаюсь. А в целом мне надо вытащить всю информацию из регистра Хозрасчетный (все метаданные и все данные). Я уже получил из него многое, но вот эти стандартные реквизиты что-то не даются.

Оффлайн NikOzn

  • *
  • Сообщений: 17
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-01-17
  • Сайт: 
  • Профессия: Ученик 1С
Кстати! Только сейчас заметил, что в конфигураторе в свойствах регистра бухгалтерии показано 11 реквизитов (я их перечислил в первом посте), в вот эта строчка
kAttribCount := StandardAttributes.Количество()*1;
через OLE дает их только 10 штук. Пропущен реквизит "Счет"!
Странное поведение сервера OLE 1С8.2, может это глюк, который пока непонятно, как обойти.
Кто-нибудь имеет что сказать на эту деталь?

Оффлайн NikOzn

  • *
  • Сообщений: 17
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-01-17
  • Сайт: 
  • Профессия: Ученик 1С
Вообщем сам  себе частично отвечаю, удивляясь, почему гуру 1С не смогли на такой элементарный вопрос дать ответ. Перечисление коллекции стандартных реквизитов нужно было выполнять в таком цикле
for k := kAttribCount - 1 to 0 do
  begin
     vAttrib := StandardAttributes[k];
  end;
Всего-то делов! Хотя мне для этого приходится в конфигураторе дописать функцию для выбора по индексу (OLE ведь!).
Но вот вопрос с количеством отображения в этом списке всего 10 из 11 описаний стандартных реквизитов остался открытым.

Оффлайн sergejK74

  • *****
  • Сообщений: 1093
  • РЕПУТАЦИЯ: 458
  • КПД: 42%
  • Всегда готов помочь!
  • Регистрация: 2011-07-08
  • Сайт: 
  • Профессия: Ученик 1С
Вообщем сам  себе частично отвечаю, удивляясь, почему гуру 1С не смогли на такой элементарный вопрос дать ответ.
Читать мы не приучены?
vAttrib := StandardAttributes[k];   
Кнопочка Спасибо - слева!

Оффлайн sergejK74

  • *****
  • Сообщений: 1093
  • РЕПУТАЦИЯ: 458
  • КПД: 42%
  • Всегда готов помочь!
  • Регистрация: 2011-07-08
  • Сайт: 
  • Профессия: Ученик 1С
По поводу реквизита счет. Поиграйся у регистра бухгалтерии с признаком поддержки бухгалтерии, вспомни о принципах двойной записи, а потом нас просвятишь. И зачем ты с этой 1С мучаешься?
Кнопочка Спасибо - слева!


Теги:
 

Значения некоторых колонок являются суммами некоторых колонок, которые в свою очередь так же являются суммами других. Как упорядочить?

Автор acces969Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 283
Последний ответ 26 Июн 2017, 14:32
от AsadRoman
Получить номер недели в месяце в запросе [номер недели]

Автор MuI_I_IkaРаздел Алгоритмы

Ответов: 0
Просмотров: 4147
Последний ответ 15 Июл 2015, 18:24
от MuI_I_Ika
Как объединить объект в реквизите формы с типом "ДокументОбъект" и объект формы, созданной через "ПолучитьФорму()"?

Автор acces969Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 245
Последний ответ 06 Авг 2017, 21:22
от alex0402
как получить значение реквизита "Код" в обработке "ПодборНоменклатуры" в УТ10.3

Автор JalibРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 1086
Последний ответ 02 Дек 2016, 12:58
от Jalib
Что быстрее: Загрузить табличную часть в запрос и там добавить колонки, или пробежаться циклом по ТЧ и добавить значения в колонки

Автор ZeedРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 985
Последний ответ 11 Июл 2016, 09:00
от vitasw

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
154 Сообщений
ilyay ilyay
66 Сообщений
alex0402
53 Сообщений
AIFrame
46 Сообщений
andron81_81
44 Сообщений
oleg-x
44 Сообщений
MuI_I_Ika MuI_I_Ika
32 Сообщений
BuhRust
32 Сообщений
Golickoff Golickoff
31 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 185
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal