powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / 1C и старые программы
23 сообщений из 23, страница 1 из 1
1C и старые программы
    #32570724
minva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ситуация такая. Купили наши 1С. Зарплата и кадры. Ведут в ней только учет кадров, зарплату начисляют по старым программам. И тут вышла незадачка - все данные (структура подразделения, прием, увольнение, адреса сотрудников и тп) лежат теперь в 1с, а они нужны и в старых задачах!
Наши катают на фирму письмо, мол сделайте так, чтобы из 1с можно было экспортировать данные в нужные нам структуры и использовать в старых прогах... Бред, по-моему...
Теперь вопрос - кто сталкивался с подобными проблемами (переход со старого на новое) и как они решались. Особенность - предприятие огромное, переход на 1с повсеместно, как я понял, не планируется. Структуру хранения данных 1с-цы нам не дают...
...
Рейтинг: 0 / 0
1C и старые программы
    #32570761
1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смешно
Особенно
Код: plaintext
Структуру хранения данных 1с-цы нам не дают
...
Рейтинг: 0 / 0
1C и старые программы
    #32570781
minva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смешно... Особенно то, что структуру я уже нашел сам :-)))
...
Рейтинг: 0 / 0
1C и старые программы
    #32570799
Пупкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторСтруктуру хранения данных 1с-цы нам не дают

Странные какие-то 1С-цы.
Структура лежит в каталоге базы 1С - текстовый файл с расширением .dd
Разобраться в нем не будет большой проблемой, особенно для извлечения только справочников.

По поводу \'1С Зарплата и кадры\' - расчет зарплаты при средних и больших объемах предприятия, нестандартных схемах начислений и т.д. может превратиться в ад. Я так понимаю, что купили только коробку 1С, отдав внедрение собственному отделу ИТ. Если так то - зря, ИМХО. Пусть бы франчайзи геморой имели. Правда не факт, что и они бы запустили такого монстра как \'1С ЗиК\' :).

По поводу подобной проблемы вообще.
Был тут топик
/topic/37397

там тов. ASCRUS излагал свою точку зрения на проблему расчета зарплаты. Излагал оччень профессионально. Может к нему обратиться - может посоветует чего?
Успехов.
...
Рейтинг: 0 / 0
1C и старые программы
    #32571062
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторСтранные какие-то 1С-цы.
Структура лежит в каталоге базы 1С - текстовый файл с расширением .dd
Разобраться в нем не будет большой проблемой, особенно для извлечения только справочников.

Не верьте. Одним только словарем данных вам не обойтись. Для правильной интерпретации содержимого *.dbf вам может понадобится ещё и доступ к метаданным, которые хранятся в 1cv7.md, который является т.н. compaund файлом, т.е. состоит из OLEStorаges и OLEStreams. Помним, что все внутренние идентификаторы в 1С хранятся в 36-й системе. Те коды, которые имеют место быть в справочниках и документах, на самом деле не более чем муляжи. Если не верите, то посмотрите на структуру индексных файлов.
...
Рейтинг: 0 / 0
1C и старые программы
    #32571178
Пупкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНе верьте. Одним только словарем данных вам не обойтись

Да, пожалуй что так. Принимается. Если ещё вспомнить о периодических реквизитах...

Ещё, как вариант можно рассмотреть выгрузку данных средствами языка самой 1С - в .дбф или .тхт

Успехов
...
Рейтинг: 0 / 0
1C и старые программы
    #32571198
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НИ В КОЕМ СЛУЧАЕ не лезьте в таблицы 1 эсс или их мета данные - результат жопа.
У них есть ЗАМЕЧАТЕЛЬНЕЙШИЙ инструмент - OLE - просто создайте 1c.Enterprise и имейте доступ ко всему тому что есть в конфигурации, не зависимо от её изменений.

Подробности есть в книжках из коробки 1 эсс, там с примерами.
...
Рейтинг: 0 / 0
1C и старые программы
    #32571300
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНИ В КОЕМ СЛУЧАЕ не лезьте в таблицы 1 эсс или их мета данные - результат жопа.
У них есть ЗАМЕЧАТЕЛЬНЕЙШИЙ инструмент - OLE - просто создайте 1c.Enterprise и имейте доступ ко всему тому что есть в конфигурации, не зависимо от её изменений.
А я не согласный. Приходится лазить.
Для того что бы использовать OLE вам придется запускать лишний экземпляр 1С на своей рабочей станции. А весит экземпляр 1С в памяти не слабо. А если при этом необоходимо интерактивно поработать с 1С, то вот и получите уже 2 экземпляра 1С в памяти. Выборка метаданных даже через OLE по моим ощущениям - процесс медленный.
И потом, если я не ошибаюсь, то разговор идет об экспорте данных из 1С, т.е об операции чтения. Если у вас не XP, то доступ к данным 1С можно получить по ODBC, через "Microsoft Visual FoxPro Driver". Так что, если ваше средство разработки, позволяет для доступа к данным использовать ODBC, то Wellcome!
...
Рейтинг: 0 / 0
1C и старые программы
    #32571342
Пупкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЕсли у вас не XP

Простите, сэр, а какая проблема в ХР? Я просто не в курсе...
...
Рейтинг: 0 / 0
1C и старые программы
    #32571391
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если у вас не ПК установлена XP, то ODBC драйвер для Foxpro от Microsoft работать не будет.
...
Рейтинг: 0 / 0
1C и старые программы
    #32571413
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот нашел в MSDN:
авторInstallation Requirements
To install the Microsoft Visual FoxPro ODBC Driver, you need the following:
Microsoft Windows® 95, Windows 98, Windows NT® 4.0, or Windows 2000
...
Рейтинг: 0 / 0
1C и старые программы
    #32571493
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
лишний экземпляр - да
медленнее - нет - 1эсс (клиент) работает также

И действительно, ради одноразовой переброски возиться не стоит,
но если нужно постоянно синхронизировать - ЛУЧШЕ один раз написать правильно.

З.Ы. Это всё про не СКЛ версию, с ней не знаком
...
Рейтинг: 0 / 0
1C и старые программы
    #32571527
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кто сказал, что доступ через OLE к метаданным в самом 1С идет быстрее, чем из внешней программы? Идет так же медленно.
Дело в том, что если нам необоходимо переодически проводить синхронизацию своих внешних словарей с данными из 1С, то понадобиться доступ к метаданным. Вы же прекрасно понимаете, что в таблицах *.dbf, ссылка объекты 1С идет через их внутренние идентификаторы.

Вопрос - как мне используя OLE получить внутренний ID объекта (допустим какого-нибудь перчисления)?
...
Рейтинг: 0 / 0
1C и старые программы
    #32571563
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если внешняя программа - ридер текстового файла - вы правы,
Но 1эсс - грузит их один раз при запуске, и потом они быстро доступны

Для синхронизации не нужен доступ к мета данным.
Вместо внутреннего ИД объекта можно использовать его Объект!Код
ЕДИНСТВЕННЫЙ недостаток - нельзя менять коды в 1эсс.
ЗАТО прога будет работать и при изменении конфигурации.
Все подводные камни в виде "мы тут ещё в конфу взаимосвязей добавили" будут брабатываться самой 1эсс, а не вами.

И ваша программа экспорта/синхронизации Будет написана (в части обращения к 1 эсс) на языке 1эсс (русском или английском).
...
Рейтинг: 0 / 0
1C и старые программы
    #32571752
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итак давайте рассмотрим ситуацию:
Необходимо синхронизировать внешнюю копию справочника товаров со справочником 1С (у меня это будет sc33.dbf). Внешний справочник хранится на SQL. В sc33.dbf имеется поле sp689 - Вид товара. Так вот, Вид товара в моем случае - это есть перчисление. Тип данного поля в sc33.dbf естественно будет С9 (С9 - размерность идентификаторов в 1С).

Ещё раз, объясните, как мне узнать значение перчисления по его внутреннему идентификатору?
Ваше предложение использовать OLE будет работать примерно так:
Последовательно сканируем файл sc33.dbf
Для каждой строки из него:
1. Через OLE ищем этот элемент справочника по его коду (CODE)
2. Полуаем в строковую переменную значение перечисления
3. Во внешний спрвочник записывает полученное строковое значение.
Как-то накладно все это, при больших объемах данных. Тут уж никой техники не хватит, да и сети тоже.
...
Рейтинг: 0 / 0
1C и старые программы
    #32571778
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот накопировал, поэтому могут быть баги

Dim Trade As Object
Set Trade = CreateObject("V1CEnterprise.Application")
result = Trade.Initialize(Trade.RMTrade, "/D" & Path & " /m", "NO_SPLASH_SHOW")

Dim Товар As Object
Dim ВидНоменклатуры As Object

Set Товар = Trade.EvalExpr("CreateObject(""Справочник.Номенклатура"")")
Set ВидНоменклатуры = Trade.EvalExpr("CreateObject(""Справочник.ВидыНоменклатуры"")")
ВидНоменклатуры.НайтиПоНаименованию ("Материал")

Товар.Новый
Товар.Наименование = "Он не верит что это проще"
Товар.ТипТовара = Trade.EvalExpr("Перечисление.ТипыТоваров.ЗначениеПоИдентификатору(""Собственный"")")
Товар.ВидНоменклатуры = ВидНоменклатуры.ТекущийЭлемент()
Товар.ЕдиницаИзмерения = Trade.EvalExpr("Константа.ОсновнаяЕдиницаИзмерения")
Товар.Записать

Если это не проще варианта с таблицами (я его тоже делал для 4 видов документов), то я готов съесть .... что-нибудь :-)
Причём он отрабатывает ВСЕ скрытые в клиента 1эсс примочки ввиде занесения куда-нибудь в спец таблицы и прочее
...
Рейтинг: 0 / 0
1C и старые программы
    #32571783
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в добивочку у вас ошибка?
Номенклатура -> sc33.dbf или sc133.dbf
...
Рейтинг: 0 / 0
1C и старые программы
    #32571839
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Справочник номенклатуры - sc33.dbf (если было sc133.dbf, то это описка)
Ну и где же в вашем коде репликация в внешним справочником?
Ваш пример иллюстрирует добавление в справочник 1С новую позицию через OLE из внешнего приложения. А разговор идет про синхронизацию (или выгрузку если хотите) справочника во внешний справочник. Допустим в Sybase ASA или MS SQL, или MySQL, или ACCESS.

Про то что можно все данные вытащить через OLE, я знаю не хуже вас.
И в момент синхронизации вы не знаете, что видНоменклатуры = "Материал".
Потому что в sc33.dbf в поле SP689 будет что-то вроде ' 4VO ', и вам только предстоит идентифицировать данное значение, как "Материал". А данная информация хранится к сожалению только в 1сv7.md
...
Рейтинг: 0 / 0
1C и старые программы
    #32571861
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для синхронизации добавляем таблицку, которая хранит соответствие моих ид кодам (или названиям) 1эсс (типа 000000001 , 000002 и т.п.) .

А в моей эске sc133.dbf - Номенклатура

В момент репликации у меня не будет поля SP689 со значением ' 4VO ' (кстати по моему опять ошибка ' 4VO'), а будет атрибут объекта
Товар с названием ВидНоменклатуры , с типом значения "Справочник.ВидыНоменклатуры" и самим значением "Материалы" .
...
Рейтинг: 0 / 0
1C и старые программы
    #32571910
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ момент репликации у меня не будет поля SP689 со значением ' 4VO ' (кстати по моему опять ошибка ' 4VO'), а будет атрибут объекта
Товар с названием ВидНоменклатуры , с типом значения "Справочник.ВидыНоменклатуры" и самим значением "Материалы".
Поймите, что внешний справочник в моём случае расположен в Sybase ASA
И у него не может быть поле с типом значения "Справочник.ВидыНоменклатуры".
Жду ваших предложений дальше.
...
Рейтинг: 0 / 0
1C и старые программы
    #32571963
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пусть будет так:

в Нашей базе :
Товар( ИД, НазваниеТовара, ВидИд)
(1,"Фигня",1)
(2,"Жуть",1)
(3,"Водка",2)
(4,"Пыво",2)

ВидТовара( ИД, НазваниеВида)
(1, "Материалы для всего")
(2, "Благодатная жидкость")

СвязиЭсс (тип,ИД, Код) - здесь тип 1- это товар, 2 -это вид товара
(см ниже)

В Эсс:
НИЧЕГО НЕ ИЗМЕНЕНО (ДБФ версия)
есть ВидыНоменклатуры: "Материалы в один эсс", "Бухло"

Надо добавить связи :
(2,1,"Материалы в один эсс")
(2,2,"Бухло")
и похожее для товаров.
Тогда при работе с 1эсс можно использовать её наименование "Бухло" для товаров с ВидИд=2

Кстати можно и на их коды завязываться и на названия, И не зависить от представления данных на уровне таблиц. 1эсс сама вам создаст атрибут с именем Наименование не зависимо от его внутреннего поля таблицы с именем ЖП129048 .

Прокоментируйте пожалуйста, может я не внятно излагаю, если да, приведите пример для которого не подходит такое решение.
Жду ваших ответов
...
Рейтинг: 0 / 0
1C и старые программы
    #32802575
Garfild
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть в Сети целая туча программ как расклеймать 1С dbf файлы. Поищите на ХОМБА (HOMBA, сиречь Хомяк Баскервиллей (это не я, это придумал её автор)) а раньше было HARE.ru, там был пример разборки метафайла на С++, но её похоже грохнули. Я давно не занимался, а возможно появились новые. Но всё этто не выше 7-й версии. Восьмёрка -- просто гроб, даже и не пытайтесь.
...
Рейтинг: 0 / 0
1C и старые программы
    #32803037
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык, всё уже работает. Со всем, что нужно - разобрался. Проблем нет.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / 1C и старые программы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]