Статья из цикла «Личный опыт» «Устранение ошибок выгрузки, загрузки конфигураций в 1С: Предприятие 7.7»

06.10.09

Интеграция - Перенос данных 1C

Возможно, эта статья поможет кому-нибудь, это не свод правил как устранить ту или иную проблему с выгрузкой или загрузкой – это примеры, как попытаться «вылечить» базу данных, если стандартные средства не помогают. Они описывают именно те методы и механизмы, которые были опробованы мною лично и реально мне помогли, а так же сам механизм поиска проблем.


СЛУЧАЙ №1 (1С: Предприятие 7.7 + SQL Server 2000)

Этот случай возник у меня с одним большим клиентом пару лет назад. У клиента стояла 1С: Предприятие 7.7 + SQL Server 2000 (думаю для 2005 эта проблема останется). Необходимо было взять базу на доработку. Несколько попыток ее выгрузить успехом не увенчались. Выгрузка подвисала и могла висеть всю ночь. Проблема на лицо. База не была такой большой, что бы ей не хватало времени выгрузиться, тем более в связке с SQL Server’ом.
Тестирование и исправление ничего не дало – ошибок «ноль».
Подхожу к решению проблемы следующим образом:
1) Запускаю SQL Server Profiler (так кажется в 2000 он называется) – это монитор выполняемых запросов.
2) Запускаю 1С в режиме конфигуратора и приступаю к выгрузке. Перехожу в Profiler и смотрю на процесс.
3) Замечаю, в определенный момент, в Profiler’e процесс выгрузки останавливается. Т.е. Profiler висит на одном запросе. Жду, возможно, так надо… =514;
4) 20 минут ситуация не меняется – смотрю на текущий выполняемый запрос. Там указание на запрос и на текущую обрабатываемую запись в _1SJOURN. Прерываю выгрузку. Перехожу на эту таблицу, и смотрю, что за запись. Смотрю на реквизиты DATE, DOCNO – это соответственно дата и номер документа, на котором висим! Что за вид документа не смотрю, тупо найду документ с таким же номером в этой дате. BEST!
5) Разбираемся, почему 1С не хочет выгружать именно этот документ. Для этого, собственно, открываем 1С в режиме предприятия, находим этот документ и смотрим на него.
6) Сразу бросается в глаза огромный текстовый блок в этом документе (строка с неограниченной длиной). Все остальное вроде бы в порядке. Мысли такие может из-за того, что слишком большой кусок текста в этом документе. Ловлю себя на мысли, что это бред… Делать нечего, попробую. Очищаю этот реквизит и сохраняю документ.
7) После этого, перехожу к шагу 1 и повторяю процедуру. Ура, злополучный документ проскочил! Но остановились чуть дальше. Все проблема ясна. Но прежде чем очистить реквизит присматриваюсь к тексту и вижу, что в этом тексте полно таблиц построенных с помощью символов псевдографики (тире и прямые слеши). Очищаю и этот реквизит.
8) Продолжаю и так документов пять… Везде эти таблицы с псевдографикой.
9) Выгрузка получена и на последней попытке, время потребовалось не так много оказывается.

ВЫВОД: 1С: Предприятие 7.7 в реквизитах с типом «Строка» с неограниченной длинной на SQLном варианте подвисает, если в этом реквизите много данных с символами ‘-’ и ‘|’. Видимо попадается, какая то последовательность символов, которая не очень «нравится» 1С. Закономерность ясна, но последовательность «корявых» этих символов не установлена.

Клиент доволен. А уж я как доволен ;)

СЛУЧАЙ №2 (1С: Предприятие 7.7 + DBF => 1С: Предприятие 7.7 + SQL Server)


Сделаю небольшое отступление и попытаюсь обрисовать картину с программистами и данной базой, т.к. иначе Вы не поймете всей картины.

На этот раз проблема с DBF базой. У клиента она достигла размеров 3.9 GB (!!!). Это 4 года работы порядка 30-40 одновременно работающих человек! Вы скажете не так много, да согласен, но учтите база то DBF…

Появились проблемы типа, нельзя одновременно открывать 1С в режиме конфигуратора и предприятия (что-то обязательно вылетит), очень медленная скорость работы, постоянные проблемы с переиндексацией. Группа людей, которая занималась этой конфигурацией – или как они позволяют себя называть «программисты» (бывшие военные пред пенсионного возраста(!!!), да и такое бывает), поддерживала и изгалялась над ней, как могла. Там есть документы типа «Выписка», «Выписка1», «Выписка11». Отчеты типа «Отчет для тети Зины». Журналы, которые использовались как подсистемы. Открывание и формирование отчетов, обработок, перепроведение различных документов в тестовой базе выбранных случайно в 70% либо не открываются, либо вылетают с ошибками. В некоторых регистрах по 20 измерений и 15 ресурсов… Перечисления типа такого: «Кладовщики» со значениями «Иванов Иван Иванович», «Петров Петр Петрович» и т.д. это можно продолжать долго.
ЖУТЬ!
От этой базы нужно избавляться, чем скорее, тем лучше, но как? Создание новой конфигурации на восьмерке руководство одобрило. Но за два дня не напишешь конфигурацию, которая закроет потребности целого завода. А руководство требует: «Программа должна взвешивать авто в 1С срочно!». Какое взвешивание? Тут хоть бы завтра конфигурация не загнулась. Ну а так как база DBF-ная, то все работают где? Правильно, на удаленном рабочем столе (терминале), там же база. Попытка провести документ с локального рабочего места происходит за 1.5 минуты. А как взвешивать с удаленки? Внешняя компонента производителя весов может работать только с локалки… Подключение локальных ресурсов не работает как нужно. Ставить Citrix (надстройка над терминалом), решила бы проблему, но это слишком накладно.

Решение было принято следующее: перенести базу на SQL Server. Это избавит от лишних проблем, да и работа с локалки будет по скорости практически одинакова с работой на терминале. Закрыть эту срочную проблему, потом, не спеша, заниматься созданием нормальной конфигурации для предприятия.
Итак, моя задача перенести базу DBF на SQL Server.
Попытаемся определить причины вылетов из конфигурации.

1) Вылеты бывают только тогда когда запущен и конфигуратор и предприятие. На всякий случай. Проверю MD-шник, благо, таких программ много. Программа показала, что в обработке «Шашки» (да, там и такое есть), чего-то там не верно. Заходим, удаляем из конфигурации.

2) Попробую тестирование и исправление. Пробую. Конфигурация выдает больше 1000 ошибок. Скорее всего чудо программисты, никогда не знали, что это такое. Поставил галочку перерасчет итогов, обнаруживаю, что после нее «Оборотно-сальдовая ведомость» не похожа на себя. Значит так делать нельзя. Пересчитывать итоги нельзя! Ужас. Интересно сколько эта база еще выдержит?

3) Попробовать свернуть базу? Да, но есть такие отчеты, причем очень важные, которые нужно формировать именно с 26 марта 2006 года, ни раньше, ни позже, иначе отчета по финансовым результатам не получится. Бегло смотрю, вместо использования регистров или проводок используются перебор документов, ну-ну…

4) Выгружаем базу с DBF. При выгрузке в списке ошибок «Проверка операций. Операция документа ВводОстатковОсновныхСредствНУ 1. Исправлена нумерация проводок;;» таких строк около 100. Лишь бы перенеслось нормально.

5) Потом загружаем на SQL Server. Спустя некоторое время вылетает ошибка: мол в таблице _1SENRTY не может быть создан первичный ключ PK__1SENTRY ввиду повторяющегося значения ключа (200604276PPZLS 2DGY,0,0) и процесс загрузки прекращается. Значит, в таблице _1SENTRY, 1С пытается создать первичный ключ, но за счет того, что записи по которому он строится повторяются он не может быть создан. Исправлять это на SQL смыла нет, так как выгрузка не была завершена, поэтому удалим ее из DBF базы и проделаем все заново.

6) Открываем SQL Server и смотрим на таблицу _1SENTRY. Ага, поле по которому 1С пытается построить первичный ключ называется DATE_TIME_DOCID и состоит из конкатенации DATE (дата проводки), TIME (время проводки) и DOCID (№ документа или операции) + в первичный ключ включается NUMBER (№ проводки) выполняем запрос в базе данных
--Выбирает все проводки, у которых DOCID содержит подстроку «2DGY»
SELECT * FROM _1SENTRY WHERE DOCID LIKE '%2DGY%'

2DGY не случайно именно его нам 1С при загрузке и указала в качестве описания ошибки (см. в пункт 5)

7) Запрос вернул 4 строки с суммами. Причем две строки реально задвоенны! Интересно как это могло получиться в DBF базе? Далее открываем конфигурации в режиме предприятия и ищем ту самую операцию с проводками (Операции>Журнал операций выбираем операции за дату 27.04.2007 – см. пункт 5). По нашим суммам запроса SQL-базы, пытаемся найти задвоенные проводки. После недолгого поиска, наконец, нашел. Открываем документ, которые сделал эти операции, смотрим, там три строки, а вот проводок четыре, хотя по логике больше быть не может! Причем одна явный клон другой и номера у них одинаковые. Пытаюсь перепровести документ, все получается! Лишняя проводка удалилась! Ну, опять. Выгрузка из DBF. Загрузка в SQL… Проскочило. Ура! Если бы такая ситуация повторилась второй раз я планировал написать обработку которая в DВF-варианте перебрала бы повторяющиеся записи и потом по ним пришлось бы перепровести документы. Но мне повезло. Как ни странно, эта ошибка оказалась одной единственной, которая препятствовала выгрузке на SQL Server.

8) Конфигурация полностью перегрузилась. Открываем обе базы SQL и DBF. Открываем оборотно-сальдовую ведомость и по всем фирмам формируем ее. Вроде бы то. Обортки совпадают. Но радоваться рано, проверяю все «работающие» отчеты, все вроде бы сходится.

9) Странное дело, но вылетать после заливки SQL-ный вариант перестал.

Вывод: Конечно, проблема решилась частично: логическая целостность нарушена, итоги накрылись и вряд ли что-то их может оживить, но даже в этом случае на SQL версии, 1С будет работать стабильней. Если не перепроводить документы прошлых периодов и не пересчитывать итоги, база еще немного продержится… А времени для создания новой конфигурации должно хватить с лихвой.


Подчеркну это не свод правил, это моя методика. У кого какие замечания и дополнения прошу к обсуждению

См. также

Перенос данных 1C Программист Бухгалтер Платформа 1С v8.3 Оперативный учет 7.7 1С:Торговля и склад 7.7 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет Управленческий учет Платные (руб)

Переносится из типовой конфигурации «Торговля и Склад», реакции 9.2 платформы «1С:Предприятие 7.7» в типовую конфигурацию «Бухгалтерия предприятия», редакции 3.0 платформы «1С: Предприятие 8.3» следующие документы и их операции (с соблюдением всех соответствующих проводок): Поступления товаров и услуг (в т.ч. комиссия), Реализации товаров и услуг (в т.ч. комиссия), ПКО и РКО, выписки банка, счета фактуры (выданные и полученный), Возвраты от покупателей и поставщику, Заявка Покупателя, Инвентаризация и другие (всего 28 видов документов, смотрите описание, приложенное к обработке)

11988 руб.

30.06.2014    65430    105    96    

113

Перенос данных 1C Программист Платформа 1С v7.7 Платформа 1С v8.3 1С:Торговля и склад 7.7 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Обработка позволяет выгружать данные из ТиС 7.7 в конфигурации 8.3 для сдачи отчетности, для переноса данных при переходе на 8.3, для организации обмена внутри компании при использовании разных версий 1С в структурных подразделениях или формирования отгрузочных накладных для клиентов.

6000 руб.

18.05.2020    23630    64    39    

38

Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Программист Платформа 1С v8.3 Оперативный учет 7.7 1С:Торговля и склад 7.7 1С:Бухгалтерия 3.0 Бухгалтерский учет Управленческий учет Абонемент ($m)

Обработка и правила обмена данными для выгрузки документов и всех связанных с ними справочников из 1С7.7 ТиС 9.2 в 1С8.3 БП 3.0 через файл XML. В типовых конфигурациях уже есть такое решение. Это немного доработанные правила и сама обработка выгрузки, добавлена возможность устанавливать отбор по выгружаемым документам по Фирме, Контрагенту, Складу, Проекту, Автору, ЮрЛицу. А также это внешняя обработка, что даёт возможность адаптировать её под нетиповую ТиС. Обработка и правила тестировались на платформах: 1С: Предприятие 7.7 и 1С: Предприятие 8.3.18.1334. На типовых конфигурациях: «Торговля + склад», редакция 9.2 (7.70 1004) и «Бухгалтерия предприятия» редакция 3.0 (3.0.96.30).

1 стартмани

13.08.2021    9233    55    Kuzya_brаtsk    8    

11

Перенос данных 1C Программист Платформа 1С v7.7 Платформа 1С v8.3 Платформа 1C v8.2 1С:Управление торговлей 10 1С:Комплексная 7.7 Россия Управленческий учет Платные (руб)

Начните вести учет в УТ 10.3! Перенесите все свои данные в УТ 10.3 в любом месяце года и продолжите вести учет! Программа перенесёт любое количество баз с документами и остатками в больших количествах. Обработка выгрузки выполнит проверку исходных данных и сформирует отчет о найденных ошибках в справочниках и документах. Партии переносятся с себестоимостью. Штрихкоды номенклатуры загружаются. Цена переносится. Автор консультирует.

8400 руб.

17.03.2021    15999    5    13    

6

Зарплата Перенос данных 1C Программист Бухгалтер Бухгалтерский учет 7.7 Сложные периодические расчеты 1С:Бухгалтерия 7.7 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Как известно, Бухгалтерия 7.7 не имеет штатной возможности для обмена с ЗУП 3.1. Данная разработка пригодится тем, кто перешел с ЗиК 2.3 на ЗУП 3.1, но вынужден по каким-то своим причинам оставаться на Бухгалтерии 7.7.

18000 руб.

29.09.2020    13844    2    0    

5

SALE! 10%

Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Программист Платформа 1С v7.7 Платформа 1С v8.3 1С:Бухгалтерия 7.7 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Перенос данных из 1С:Бухгалтерия 7.7 в БП 3.0 | Продукт является развитием и исправлением ошибок стандартной обработки для выгрузки данных из 1С Бухгалтерии 7.7 в Бухгалтерию 3.0 | Перенос из 7.7 является сложным, и на рынке сложно найти специалистов 1С по "семерке" - сотрудники помогут вам выполнить переход в рамках техподдержки предлагаемого переноса данных!

55778 50200 руб.

26.05.2020    35096    10    73    

16

Перенос данных 1C Программист Платформа 1С v7.7 Платформа 1С v8.3 1С:Конвертация данных Бесплатно (free)

При переходе на новую версию 1С в период параллельной эксплуатации может возникнуть необходимость обратной конвертации данных (по правилам КД версии 2.1) из 1С:Предприятие 8.3 в 1С:Предприятие 7.7 для переноса данных из 1С:Предприятие 8.3 в 7.7. Сделать это поможет следующая инструкция по КД2 о том, как создать новую конвертацию из 8.3 в 7.7, сохранить модуль и правила загрузки данных, сделать загрузку данных. КД2.

17.10.2019    15254    ksnik    0    

16

Загрузка и выгрузка в Excel Перенос данных 1C Программист Пользователь Платформа 1С v7.7 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv7 1С:ERP Управление предприятием 2 Абонемент ($m)

Описание технологии загрузки любых адресов из 1С 7.7 с разложением по ФИАС в современные конфигурации 1C 8.3 на примере ERP. Предлагаемый способ просто чудо, он гарантирует результат, он очень простой и качественный! Моя обработка является синтаксическим анализатором, который подставляет в строку грязного адреса выражение "Дом №" и "Корпус", благодаря чему грязные адреса 7.7 сами очень хорошо раскладываются по значимым полям ФИАС - заполняется область, город, улица, дом, корпус.. все раскладывается само с помощью встроенного механизма современных конфигураций 1С 8.3, который написали сами сотрудники фирмы 1С!

1 стартмани

16.08.2019    19653    18    ksnik    12    

8
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Diversus 2329 06.10.09 14:07 Сейчас в теме
За что минус?
artbear; Паланик; +2 Ответить
2. Арчибальд 2709 06.10.09 14:15 Сейчас в теме
Для 1 случая: а контроль ИБ делать не пробовал? Перевод строки в текстовом реквизите (хоть ограниченной, хоть неограниченной длины) уже с большой вероятностью выгрузку подвешивает. Но контролем вылавливается.
3. Diversus 2329 06.10.09 14:21 Сейчас в теме
(2) Для 1 случая контроль проходит
4. ninch 51 07.10.09 06:28 Сейчас в теме
Прикольно. На лицо желание делиться опытом и это похвально:)
5. larisab 160 07.10.09 08:27 Сейчас в теме
6. progr-2008 118 07.10.09 09:47 Сейчас в теме
Ценю такие статьи, опыт у всех разный, часто надо то, что редко делаешь, а быстро помогают решить задачу мысли уже решавших.
Спасибо.
7. rasswet 82 07.10.09 09:50 Сейчас в теме
написано толково, подробно и старательно. за это плюс!
8. UncleVader 129 08.10.09 09:08 Сейчас в теме
Добавлю из своих наблюдений. При открытых n окнах 1С 77 в различных режимах (конфигуратор, предприятие, отладчик) переставало открываться n+1 окно. При этом значение n не так уж и велико как по мне, т.е. в пределах 4-5. Очень напрягало. Особенно когда надо было иметь открытыми 2 базы и в конфигураторах и в предприятиях, т.е. уже 4 окна + нужен был отладчик, но он уже не открывался. Не помогала ни очистка памяти ни перезагрузка. Частично помогало закрытие нескольких дочерних окон внутри конфигуратора или предприятия.
Решение было найдено путем увеличения максимально допустимого значения дескрипторов окон. Вот оригинал статьи:
To tweak the limit, take a look in the registry at HLKM/System/CurrentControlSet/Control/Session Manager/SubSystems
(cranked up a bit if you find yourself manipulating a lot of desktop objects.)
Within that key is a subkey called Windows, which contains in it, among other things, the value "SharedSection=1024,3072"
Changing the SharedSection entry to "1024,3072,512" (note the comma and the value)increases the size of the "hidden" desktop heap.
If that doesn't work, try increasing the second of the comma delimited values (e.g. 3072 -> 4096) which is the size limit of any particular desktop heap.

ps: my values SharedSection=5120,6400,5120


зы: кому непонятно, могу растолковать по-русски ;)
9. Diversus 2329 08.10.09 09:21 Сейчас в теме
(8) Нет, ну когда оно перестает открываться это конечно проблема. А когда вообще все вылетает? :D
10. dobraleks 136 08.10.09 11:13 Сейчас в теме
Прочитал данную статью и сам задумалка.. Что твориться то с моей DBF базой. Вроде в процесе работы глюкой не замечаеться, но данная статья заставила задуматься и не ждать пока чтото случиться, а заблаговременно позаботиться об ошибках..
Пошел проверять MD-шник, :)
11. Altair777 645 08.10.09 12:13 Сейчас в теме
(10) > и не ждать пока чтото случиться, а заблаговременно позаботиться об ошибках.

Об их наличии? :-)
12. DJ_Codebase 31.10.09 20:35 Сейчас в теме
Похожая проблема недавно была, не смогли перенести ДБФ базу на скул, так крутится на дбф. Но теперь после твоей статьи я думаю удастся нам это поправить :) Спасибо! +1!
13. valbir 05.11.09 11:48 Сейчас в теме
спасибо, откровенно! честно! и реально помогло!!
14. FlexL 29 24.05.10 22:41 Сейчас в теме
силен !!! читал как дедектив ... так держать ;)
15. Kuzya_brаtsk 314 19.03.13 09:44 Сейчас в теме
Отличная статья, спасибо автору!
16. dimisa 137 29.08.14 13:02 Сейчас в теме
При миграции бухгалтерской базы DBF ---> SQL вылетала ошибка во время загрузки в SQL.
Проблема\Решение : строка неограниченной длинны в общих реквизитах ("Примечание") \ ограничил длину в 200 символов.
Проблема решена.
17. andrey1508 109 28.10.20 08:27 Сейчас в теме
Статья полезная. У самого проблема: база 1С 7.7 размер в SQL чуть более 10 Gb. Тестирование и исправление (делал с очисткой битых ссылок). Повторное тестирование и исправление ошибок не показывает. При загрузке вываливается с ошибкой при загрузке таблицы документов. Всего документов около 96 тыс., вываливается на 76 600. Пишет в три таблицы в это время в _1sjourn.dbf, dh*.dbf и dt*.dbf. Ни одна из таблиц к критическому размеру в 2 Gb не приблизилась. Ваши предположения: куда посмотреть? Были в документе строки неограниченной длины: проанализировал, заменил на строку 250. Ошибка не уходит. Может кто знает какими блоками происходит загрузка, потому что следующий документ за последним загруженным, из файла выгрузки 1Cv77.dat удалял (и из журнала и саму запись) - ошибка есть. Нужна помощь зала.
19. CheBurator 2712 29.10.20 00:53 Сейчас в теме
(17)
При загрузке вываливается с ошибкой при загрузке таблицы документов.

- какая ошибка?
- попробуй загрузить в дбф
20. andrey1508 109 02.11.20 08:20 Сейчас в теме
(19) Как раз в дбф и выгружаю. Выгрузить dat из sql, хочу загрузить в dbf. Вываливается с ошибкой. В журнале регистрации ничего интересного нет. Уже удалил этот тип документов, на которых возникала ошибка при загрузке (удалял через 1с: пометил на удаление, удалил с проверкой ссылочной целостности). Ошибка осталась.
18. user1464234 28.10.20 09:39 Сейчас в теме
При загрузке из 1сv77.dat? Это не про ограничение зип архиватора 7ки уже. Посмотрите логи в sqlдля начала. Если есть возможность - урбд с минимальной первичной выгрузкой (план обмена менять и частями грузить)
21. andrey1508 109 02.11.20 08:23 Сейчас в теме
(18)
В центральной базе был урбд, сейчас ключевое слово был. Уже порезал. Хотя вот мысль, попробовать сделать первоначальную полную загрузку в переферийную базу, а потом ее сделать центральной и снова прогнать через дбф.
22. andrey1508 109 02.11.20 08:26 Сейчас в теме
Напрягает просто ситуация, что в базе ЧТО-ТО заряжено, а я отловить не могу. Боюсь, что база может сказать всем пользователям "невосстановимая ошибка базы данных", а у меня даже предположений нет "где кроется ошибка". Список "некорректный символов" кто-нибудь знает. Думаю может прошерстить строковые реквизиты и строки неограниченной длины на эти символы.
23. user1464234 02.11.20 08:28 Сейчас в теме
Возможно стоит начать с нуля....
Если эта невосстановимая ошибка все таки есть, а вы ее просто не увидели?
Например, все ваши пользователи давно работают в свежей версии ка2, а вы пытаетесь восстановить найти ошибку в базе, которая никому не нужна...
Оставьте свое сообщение