Вопрос № 31476: Доброго времени суток!
Задача: требуется выгрузить ВСЕ записи из ВСЕХ справочников наружу (например в DBFку через XBase). (непринципиально, устраивает ЛЮБОЙ неизвращённый (не 1С-совский :) ) формат). Выгрузить не "вручную".
Условия:...Вопрос № 31524: Здраствуйте эксперты. У меня такой опрос, мне надо составить отчет "Книга продаж", не используя стандартуу заготовку, т.к. она не походит. Скажите как примерно можно это сделать, я уже вторую неделю думаю и ничего придумать не могу.
Зар...
Вопрос № 31.476
Доброго времени суток!
Задача: требуется выгрузить ВСЕ записи из ВСЕХ справочников наружу (например в DBFку через XBase). (непринципиально, устраивает ЛЮБОЙ неизвращённый (не 1С-совский :) ) формат). Выгрузить не "вручную".
Условия: 1С 7.7, конфигурация "самопальная", исполнитель (я) от 1С-ки бесконечно далёк.
Вопросы:
1. Возможно ли для отдельно взятого справочника получить список его полей?
("реквизитов", в 1С-совской терминологии). Или хотябы имён полей? Как?
2. Если (1) - "да", то: можно ли для списка полей (имён полей) получить их тип (и размер(длину поля))?
3. Если (1) - "нет": возможно ли обращаться к полю записи ("реквизиту" "элемента") ещё как либо, кроме как по имени? (например по индексу)
4. Если всё вышеперечисленное - "никак": тогда что вы можете посоветовать для решения поставленной задачи? (лезть напрямую в 1С-совское "хранилище" просьба не предлагать... )
Заранее благодарен.
Отправлен: 14.12.2005, 16:53
Вопрос задал: Telran (статус: Посетитель)
Всего ответов: 6 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Сергей
Здравствуйте, Telran!
1. Смотри в каталоге с базой файл 1Cv77.dd? там есть описание всех полей, для каждого справочника
Ответ отправил: Сергей (статус: 1-ый класс)
Отправлен: 14.12.2005, 16:58 Оценка за ответ: 4
Отвечает: Ovr1970
Здравствуйте, Telran!
Здравствуйте, Telran!
1) Да, возможно. Код и наименование есть всегда, остальные через метаданные.
МетСпр=Метаданные.Справочник(Спр.Вид());
МетСпр.Реквизит() - количество
МетСпр.Реквизит(1..n) - описание реквизита, соответственно
МетСпр.Реквизит(к).Идентификатор -
МетСпр.Реквизит(к).Синоним
МетСпр.Реквизит(к).Тип
МетСпр.Реквизит(к).Длинна и т.д.
Лучше посмотреть через меню Конфигурация->Описание метаданных
Ответ отправил: Ovr1970 (статус: 5-ый класс)
Отправлен: 14.12.2005, 17:14 Оценка за ответ: 5
Отвечает: Eugeneks
Здравствуйте, Telran!
Список полей любго объекта метаданных доступен через объект глобального контекста "метаданные". Через этот объект, можно получить доступ к структуре объекта(реквизитам). Получение реквизитов производится по индексу. Насчет получения типа реквизита ничего не скажу, не помню.
P.S. На последок пример кода(процедура переноса данных из подчиного справочника одного владельца в подчиненный справочник другого владельца, при создани его копированием)
Приложение:
Ответ отправил: Eugeneks (статус: 1-ый класс)
Отправлен: 14.12.2005, 17:31 Оценка за ответ: 5
Отвечает: Тираель
Здравствуйте, Telran!
Сделайте выгрузку метаданных :)в 1с есть такая функция
--------- Ищите истину там где ее НЕТ
Ответ отправил: Тираель (статус: 7-ой класс)
Отправлен: 14.12.2005, 17:55
Отвечает: FarGot
Здравствуйте, Telran!
Возможно не совсем то что вам нужно, но описание всех полей, а также индексов для любого объекта метаданных, в вашем случае справочников, можно найти в файле 1CV7.DD. Открыть его в текстовом редакторе, там все написано. Кроме структуры объекта, есть сведения в каком файле это находится, к примеру "Справочник СтавкиНДС" находится в файле SC211.dbf, индексы, соответсвенно в SC211.cdx. Примерно так.
Ответ отправил: FarGot (статус: 6-ой класс)
Отправлен: 14.12.2005, 23:10
Отвечает: Шахрайчук Владимир Анатольевич
Здравствуйте, Telran!
Можно. Через ключевое слово метаданные. К сожалению, я не знаю как,
приведу только примеры из книги
Метаданные.Справочник(1).Реквизит(1)
Метаданные.Справочник(1).Идентификатор
Метаданные.Справочник("Организации").Выбран()
Итак, ответы: 1Да 2Да 3Да 4Лезть в конфигуратор, но не сохранять изменения
Здраствуйте эксперты. У меня такой опрос, мне надо составить отчет "Книга продаж", не используя стандартуу заготовку, т.к. она не походит. Скажите как примерно можно это сделать, я уже вторую неделю думаю и ничего придумать не могу.
Заранее спасибо.
Отвечает: Шахрайчук Владимир Анатольевич
Здравствуйте, Шишлянникова Анисия Николаевна!
У нас, на Украине, КнигаПродаж это простой РеестрНалоговыхНакладных.
Соответственно, есть 2 отчета (задача разбита на 2 части).
1 часть смотрит, все ли и на всю сумму ли выписаны налоговые накладные.
Делается это так: смотрим обороты по покупателю за месяц (ВыполнитьЗапрос) (покупатели в цикле), смотрим начальный долг/предоплату и вычисляем сумму налоговых за месяц.
СуммаНалоговых=Макс(ДО-СНК,КО-СНД) (или какая там у Вас в России формула). После этого смотрим налоговые ВыбратьДокументы() и определяем сумму, на которую они по конкретному контрагенту выписаны. Результат печатаем. Так как налоговая накладная - дело тонкое, то выписка их идет ТОЛЬКО вручную. Печать, подпись.
2-я часть просто печатает список выписанных и проведенных налоговых накладных. Итоги по дням, по сумме, по месяцу, как положено.