Группа: Пользователи
Сообщений: 61
Спасибо сказали: 0 раз
Рейтинг: 0
Добрый день. База 1С 7.7.025 DBF/CDX. Сохраняю документ с определенным количеством строк при следующем открытии не хватает несколько строк. В процедурах ПриОткрытии() и ПриЗаписи() нет программного удаления. Я думаю, что потихоньку рушится база, что в таких случаях необходимо делать?
Группа: Местный
Сообщений: 520
Спасибо сказали: 70 раз
Рейтинг: 51.3
Цитата(DAS_Alex @ 30.05.11, 8:30)
Добрый день. База 1С 7.7.025 DBF/CDX. Сохраняю документ с определенным количеством строк при следующем открытии не хватает несколько строк. В процедурах ПриОткрытии() и ПриЗаписи() нет программного удаления. Я думаю, что потихоньку рушится база, что в таких случаях необходимо делать?
1. Резервная копия 2. Тестирование и исправление ИБ
Если при выполнении пункта 2 - много ошибок - то подымаем резервную копию - делаем выгрузку а потом загрузку ИБ и опять пункт 2. Удачи.
Группа: Пользователи
Сообщений: 62
Спасибо сказали: 14 раз
Рейтинг: 0
Цитата(DAS_Alex @ 30.05.11, 9:47)
при выполнении пункта 2 много ошибок, но ошибок связанных с проблемным документом немного Зачем делать: - то подымаем резервную копию - делаем выгрузку а потом загрузку ИБ и опять пункт 2? Там те же ошибки..
Выгрузка - Загрузка часто "лечит" dbf базы. Сколько обычно строк в документе? Посмотрите в модуле документа при проведении часто используют ВыгрузитьТабличнуюЧасть - Загрузить ТабличнуюЧасть.
В процедурах ПриОткрытии() и ПриЗаписи() нет программного удаления. Я думаю, что потихоньку рушится база, что в таких случаях необходимо делать?
Если бы рушилась база - Вы бы в неё вообще не вошли. Проверяйте отладчиком. Во-первых удаление может быть где угодно, а не только в этих процедурах, во-вторых суть может быть не в удалении, а в несохранении - к примеру при несоблюдении каких-то параметров строка просто выбрасывается.
Группа: Пользователи
Сообщений: 61
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(-=VJ=- @ 30.05.11, 10:46)
Если бы рушилась база - Вы бы в неё вообще не вошли. Проверяйте отладчиком. Во-первых удаление может быть где угодно, а не только в этих процедурах, во-вторых суть может быть не в удалении, а в несохранении - к примеру при несоблюдении каких-то параметров строка просто выбрасывается.
Разработчик документа Я. Все, что там написано я знаю и ничего страшного не вижу. В работе он уже около трех лет. Почему я думаю на базу - каждый день база несколько раз завершается аварийно и индексируется...
Группа: Пользователи
Сообщений: 61
Спасибо сказали: 0 раз
Рейтинг: 0
Проблема была замечена при вводе на основании. Этот док. вводится на основании самого себя. Создав и сохранив док, пользователь тут же вводит на основании точную копию созданного, т.е кол-во строк не трудно запомнить, ну допустим 10. В документе введенном на основании остается три строки, хотя описано, что перенести все 10. Если открыть документ основание то в нем также будет три строки из введенных 10.
У этого документа есть вспомогательный документ для второй табл. части. Контекст этого док-та передается в вспомог. документ и держится там до закрытия вспомогательного, может это как-то влияет......
каждый день база несколько раз завершается аварийно
Цитата(DAS_Alex @ 30.05.11, 12:43)
... медленная скорость сети может влиять..
В терминал её!!!!!!!!!!!!!!!!!!!! ---- Я думаю вообще могут пакеты по сети теряться в этом случае. ---- Проверить - не стоит ли разрешение для шары кешировать файлы. Или как оно там называется.
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0
Цитата(DAS_Alex @ 30.05.11, 14:44)
Проблема была замечена при вводе на основании. Этот док. вводится на основании самого себя. Создав и сохранив док, пользователь тут же вводит на основании точную копию созданного, т.е кол-во строк не трудно запомнить, ну допустим 10. В документе введенном на основании остается три строки, хотя описано, что перенести все 10. Если открыть документ основание то в нем также будет три строки из введенных 10.
Проверка на Модифицированность дока-основания есть? Новый вводится из формы основания или из журнала/обработки?
ЗЫ. Больше похоже на косяк в коде. Для других причин "слишком умно".
Группа: Пользователи
Сообщений: 61
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(-=VJ=- @ 30.05.11, 13:49)
Ну так бросьте листинг процедуры - пусть народ посмотрит, авось чего и найдем.
Вот она:
Процедура ВводНаОсновании(ДокОснование) спр=СоздатьОбъект("Справочник.альбом"); ДокументОснование=ДокОснование; НомерДок=ДокОснование.НомерДок; ДатаДок=ДокОснование.ДатаДок; Деталь=ДокОснование.Деталь; Деталь2=ДокОснование.Деталь2; Деталь3=ДокОснование.Деталь3; Изделие=ДокОснование.Изделие; ДокОснование.ВыбратьСтроки(); Пока ДокОснование.ПолучитьСтроку()=1 Цикл Если (Число(ДокОснование.Дата_к)<>0) и (ДокОснование.ПринятоКоличество<>0) Тогда если ДокОснование.НомерСтроки=1 тогда если ДокОснование.есть_зарплата=1 тогда стр=2; иначе стр=ДокОснование.НомерСтроки; конецесли; иначе стр=ДокОснование.НомерСтроки+1; конецесли; КонецЕсли; КонецЦикла; если стр=1 тогда // если марш-ку разрывают в начале ДокОснование.ПолучитьСтрокуПоНомеру(стр); Для а=стр по ДокОснование.КоличествоСтрок() Цикл НоваяСтрока(); ДокОснование.ПолучитьСтрокуПоНомеру(а); НомерОперации=ДокОснование.НомерОперации; НаименованиеОперации=ДокОснование.НаименованиеОперации; Цех=ДокОснование.цех; Кдетали = ДокОснование.Кдетали; //ном_детали = ДокОснование.ном_детали; Замечание=ДокОснование.Замечание; КонецЦикла; Форма.Обновить(); иначе // если марш-ку разрывают в середине ДокОснование.ПолучитьСтрокуПоНомеру(стр); Для а=стр по ДокОснование.КоличествоСтрок() Цикл НоваяСтрока(); ДокОснование.ПолучитьСтрокуПоНомеру(а); НомерОперации=ДокОснование.НомерОперации; НаименованиеОперации=ДокОснование.НаименованиеОперации; Цех=ДокОснование.цех; Кдетали = ДокОснование.Кдетали; //ном_детали = ДокОснование.ном_детали; Замечание=ДокОснование.Замечание; КонецЦикла; Форма.Обновить(); конецесли; КонецПроцедуры
Вот она:
Процедура ВводНаОсновании(ДокОснование) спр=СоздатьОбъект("Справочник.альбом"); ДокументОснование=ДокОснование; НомерДок=ДокОснование.НомерДок; ДатаДок=ДокОснование.ДатаДок; Деталь=ДокОснование.Деталь; Деталь2=ДокОснование.Деталь2; Деталь3=ДокОснование.Деталь3; Изделие=ДокОснование.Изделие; ДокОснование.ВыбратьСтроки(); Пока ДокОснование.ПолучитьСтроку()=1 Цикл Если (Число(ДокОснование.Дата_к)<>0) и (ДокОснование.ПринятоКоличество<>0) Тогда если ДокОснование.НомерСтроки=1 тогда если ДокОснование.есть_зарплата=1 тогда стр=2; иначе стр=ДокОснование.НомерСтроки; конецесли; иначе стр=ДокОснование.НомерСтроки+1; конецесли; КонецЕсли; КонецЦикла; если стр=1 тогда // если марш-ку разрывают в начале ДокОснование.ПолучитьСтрокуПоНомеру(стр); Для а=стр по ДокОснование.КоличествоСтрок() Цикл НоваяСтрока(); ДокОснование.ПолучитьСтрокуПоНомеру(а); НомерОперации=ДокОснование.НомерОперации; НаименованиеОперации=ДокОснование.НаименованиеОперации; Цех=ДокОснование.цех; Кдетали = ДокОснование.Кдетали; //ном_детали = ДокОснование.ном_детали; Замечание=ДокОснование.Замечание; КонецЦикла; Форма.Обновить(); иначе // если марш-ку разрывают в середине ДокОснование.ПолучитьСтрокуПоНомеру(стр); Для а=стр по ДокОснование.КоличествоСтрок() Цикл НоваяСтрока(); ДокОснование.ПолучитьСтрокуПоНомеру(а); НомерОперации=ДокОснование.НомерОперации; НаименованиеОперации=ДокОснование.НаименованиеОперации; Цех=ДокОснование.цех; Кдетали = ДокОснование.Кдетали; //ном_детали = ДокОснование.ном_детали; Замечание=ДокОснование.Замечание; КонецЦикла; Форма.Обновить(); конецесли; КонецПроцедуры
Но Я больше склоняюсь к сети, она у нас проблемная..
Я правильно понял: если не делать ввод на основании, а сразу после сохранения открыть документ - строк десять, а если после этого сделать ввод на основании - их в обеих документах становится три?
Группа: Пользователи
Сообщений: 61
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(-=VJ=- @ 30.05.11, 15:12)
Поправьте задвоение.
Я правильно понял: если не делать ввод на основании, а сразу после сохранения открыть документ - строк десять, а если после этого сделать ввод на основании - их в обеих документах становится три?
Не всегда, а в каких-то необъяснимых случаях. Почему я и склоняюсь к проблемам с сетью. Можно десяток создать и ввести на основании - все нормально, а на 11-й раз пропадет.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!