#0
by Zanuda
Господа, прошу помочь. Конфигурация "ЗиК". Файл 1sblob.dbf. Подскажите алгоритм заполнения поля block, для fieldid=" J4". Заранее благодарен.
#7
by Zanuda
Матрейя Fieldid C 4, Objid C 9, Blockno N 4,0, Block C 80. Заполняется из Т-2. Fieldid - идентификатор по Т-2 (fieldid=" J4", соответствует членам семьи). Objid - связывает с Id из SC16.dbf. Blockno - соответсвенно № блока. Block - сам информационный блок. Сначала там идет шестнадцатиричный код значимой части блока, но не всегда. И никак мне не понять алгоритм заполнения. Описал 5 вариантов, еще вылезают - надоело. Поэтому и прошу помочь.
#8
by Матрейя
7. Блоки заполняются по 80 символов. То есть если строка нгеограниченной длины=160, тогда значения fildid,objid будут одинаковы, различны только номера блоков и их содержимое.
#9
by Zanuda
Матрейя, спасибо, это я понял. Интересует именно структура строки неограниченной длины. Ее я получил. Там так: длина строки шестнадцатиричная,7 пробелов,потом по порядку строки, разделенные CHR, а в них столбцы, разделенные CHR - вроде все просто. Но получается бред. Вот пример старого кода (тут не все варианты):
#10
by Zanuda
Это пример получения первой записи, первых двух полей. Самый прстой, так как они попадают в Blockno=0, но и он не всегда работает и дополненный не всегда работает. Хочу понять алгоритм.
#14
by Матрейя
Однако нашел такой прикол. Если блоков допустим 2, тогда первое значение = _IdToStr(СтрДлина(СокрЛП(Спр.Новый1))умножить на два))
#17
by Zanuda
Там такие есть варианты - block="4 . ..". И много подобных, которые в систему мне не засунуть.
#18
by Матрейя
Экспорт-импорт, смотря с какой стороны смотреть :). Разве 13-14 недостаточно чтобы написать алгоритм считывания? Первое значение это длина всех блоков текущего объекта, типа индекса. Хотя, 1с можно юзать и по OLE.
#19
by Zanuda
Матрейя, в 1С попробую, но желательно это сделать без использования 1С. Для этого мне нужно знать как 1С заполняет это поле - алгоритм. Алгоритм я описал выше, но в нем получается столько исключений, что беда. Значит надо его подправить. Нет информации - как имея на входе строки из Т-2, заполняет ими 1sblob. Как например может получиться: block="4 . .."?
#20
by Матрейя
block="4" =4 - это число символов. 19. Честно говоря не понял немного. Как считывать записи и записывать я показал в 13-14. У тебя проблемы с прочтением того, что записано? Тогда покажи результат того, что там записано ( в виде непрерывной строки). Дело в том, что в blob можно записывать объекты 1с во внутреннем представлении. Может это тебя сбивает с толку?
#22
by Zanuda
Матрейя, нет все, что ты написал, я понял. Просто это не решает проблемы. Я с 1С работаю опосредствованно. То есть работаю с dbf-ми. Намного быстрее получается. 1С формирует blob из формы Т-2. Меня интересует только информация о родственниках. Вводим в Т-2 "Отец", "Иванов Иван Иванович" и по идее получаем: block="20 Отец"+CHR+"Иванов Иван Иванович"+CHR+" . . ", а строки с родственниками разделяются CHR. В принципе эта схема работает примерно в 90% случаев. Но, есть бред не укладывающийся в эту схему, тот же block="4 . ..", да 4 символа, получаем ". ." - хорошая информация о родственниках. Или block="26 . ."+CHR+CHR+"Отец"+CHR+"Иванов Иван Иванович"+CHR+" . . ". Откуда он эту пустую дату берет, почему в начало ставит? Поэтому и спрашиваю, как 1С это делает, ведь когда форму Т-2 открываешь, там пустых дат вначале нет, хотя данные для этого беруться из blob.
#24
by Матрейя
23. Мне некогда разбираться. Дай немного больше информации. Что такое Т2? какая конфа?
#25
by Zanuda
Конфигурация "Зарплата и Кадры". В кадрах используется форма Т-2, выход через справочник Сотрудники.
#29
by Zanuda
Господа, работающие с 1С, вы же освоили руссифицированный Basic, а на простой вопрос ответить не можете...
#33
by mszsuz
Если это всё для того, чтобы закачать в ЗиК данные из старой программы, то ГОРАЗДО ПРОЩЕ воспользоваться средствами встроенного языка и сделать загрузку из самой 1С. Каюсь, по-первости сам из досовской самодельной проги в 1С 7.0 непосредственно в дбф-ки писал :) т.к. считал, что это лучший вариант.
#34
by Zanuda
mszsuz, нет не для этого. Даже скорее наоборот, чтобы из dbf информацию брать в другую программу.
#37
by unknown
Ну тогда тебе в 21 все сказали. Если сам хочешь переводить туда сюда обратно, то изучай перевод чисел из одной системы счисления в другую. Читай это, там в самом конце второй части
#38
by Zanuda
unknown, большое спасибо. Матрейя в 21 все сказал, за что ему также большое спасибо. Только я не вижу какое отношение имеет перевод систем счисления к моему вопросу. Если работать с dbf, то перевод 36->10 и обратно вообще не нужен, т.к. там все связывается и по 36 хорошо. Там надо только 16->10, но проблема совсем не в этом. Проблема - откуда беруться исключения ?
#39
by unknown
А просто dbf открыть каким-нибудь вьювером, он чего показывает в этих проблемных строках?
#41
by unknown
Так с наскока не скажешь. Нужно смотреть файлы справочников сотрудников и подчиненого ему справочника семья, или как он там сейчас в ЗиКе обзывается.
#42
by Zanuda
Возможно - это пустая строка, т.к. структура там - степень родства символьная, ФИО символьная и дата рождения дата. Две пустые строки и пустая дата " . . ", если обрезать пробелы и дают такой результат. Но зачем тогда 1С помещать пустую строку, или по очереди пустую и с записью, например: block="26 . ."+CHR+CHR+"Отец"+CHR+"Иванов Иван Иванович"+CHR+" . . ". В каких случаях этот бред лезет?
#43
by unknown
А ты знаешь как работает 1C с dbf, да в принципе и любая другая прога. Ксати в статье в самом начале про это говориться.
#44
by Zanuda
Работа с dbf, она и в Африке - работа с dbf. А 1С это делает неважно. Мне все это и занадобилось не для того, чтобы данные туда вводить или редактировать, с этим все у 1С нормально. А чтоб отчеты делать. Т.к. одинаковый отчет, с выводом например в Excel, если работать напрямую с dbf у меня получается где-то раз в 30-50 быстрее.
#45
by unknown
Ну тогда ты должен знать, откуда там беруться пустые, или не до конца заполненные строки.
#47
by Zanuda
В том то и дело, что не знаю. По идее - вообще не должны появляться. То ли это глюк, то ли предусмотрено именно для 1sblob. В остальных dbf такого нет.
#49
by Zanuda
В принципе, возможно, что при очищении полей в форме Т-2, 1С оставляет в 1sblob пустую запись. Но это не объясняет block="26 . ."+CHR+CHR+"Отец"+CHR+"Иванов Иван Иванович"+CHR+" . . ".
#50
by unknown
Можно нарисовать ситуацию, при которой таккая фигня получается. Но если у тебя их там до 10% от количества всех записей, то твоего кадровика пинать надо, с работы во всяком случае ;))
#51
by Zanuda
До 5% и кадровик не при делах. Если смотреть на Т-2 из 1С, как смотрит кадровик, то там все нормально. А в 1sblob такая ерунда, вот и думаю как такое может быть? Все глюки я уже описал, новых нет пока, так что все работает нормально, но интерес, что там в 1С такого безумного происходит, остался.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- программно вызвать обработку события поля ввода табличного поля "начало выбора"?
- Обработка заполнения ТЧ
- можно ли связать добавляемые поля ввода программно с разными строками табл. поля?
- Как вызвать форму заполнения списка значений?
- Алгоритм заполнения футбольного календаря
- При выводе из 1с в WORD поля заполнения выделены жирным шрифтом.
- выбор заполнения поля в запросе
- УТ 11.3 Обработка заполнения объекта. Как обновить итоги на форме объекта после заполнения
В этой группе 1С
- УСН (доходы) на какой счет отнести транзитные платежи
- Почему в ЗиК 249 нет вычета на одного ребенка 600 руб?
- Основные средства,амортизация(нал учет) при сельхозналоге в 1с с/х ред.3
- 7.7.Помогите. Переделывают ОСВ. Запрос по нескольким значениям
- Как подключить внешнюю компоненту к 1С?
- Как очистить подчиненный справочник?
- Как из глобальника проверить открыт ли отчет?
- Как мне получить запросом только движения по приходу из регистра?
- Как сохранить таблицу значений
- Все ли убирают ПроводитьПослеТА()?
- СуперМаг-УКМ и 1С
- сравнение производительности 1C в терминале и 1C SQL
- v7.7 Бухг. Элемент диалога
- Setup 24-ого релиза не хочет запускаться на 2-процессорном сервере
- Как в отчете вывести фото номенклатуры? (+)
- Не проводятся документы в SQL?
- ПУБ 2.8 : Услуги сторонней организации по кредиту 76.5
- Проблема при работе через OLE
- "НДС по ставке 0%" и "Без НДС" одно и то же?
- Где прочитать какие релизы нужно устанавливать обязательно, а какие нет?