Ошибка после доработки документа

Тема в разделе "1C и всё что с ней связано", создана пользователем Спартак, 22 дек 2009.

  1. Спартак

    Спартак Well-Known Member

    Регистрация:
    2 май 2009
    Сообщения:
    69
    Симпатии:
    0
    Доброго времени суток!!!
    Помогите, а то уже всю голову сломал. В-общем такая ситуация. Используем 1С 7.7 бух 504 релиз (не обновляю, ибо сильно много изменений, а к глюкам привыкли уже). Так вот... есть самописный документ, который формирует проводку Дт 73.3 Кт 62.1. Вот его обработка проведения
    Код (Text):
    Процедура ОбработкаПроведения()

    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл

    Операция.НоваяПроводка();
    Операция.Д*цензура*.Счет = СчетПоКоду("73.3",ПланыСчетов.Основной);
    Операция.Д*цензура*.Сотрудники = Сотрудник;
    Операция.Кредит.Счет = СчетПоКоду("62.1",ПланыСчетов.Основной);
    Операция.Кредит.Контрагенты = Контрагенты;
    Операция.Кредит.Договоры = Договоры;
    Операция.Сумма = Сумма;

    КонецЦикла;

    Операция.СуммаОперации = Итог("Сумма");
    Операция.Записать();

    КонецПроцедуры
    Сегодня главбух сказал, что, начиная с ноября документ должен делать проводку Дт 73.3 Кт 76.5. Я исправил в тестовой копии обработку проведения и протестил ее. Код:
    Код (Text):
    Процедура ОбработкаПроведения()


    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл

    Операция.НоваяПроводка();
    Операция.Д*цензура*.Счет = СчетПоКоду("73.3",ПланыСчетов.Основной);
    Операция.Д*цензура*.Сотрудники = Сотрудник;
    Если ДатаГод (ДатаДок) > 2009 Тогда
    Операция.Кредит.Счет = СчетПоКоду("76.5",ПланыСчетов.Основной);
    Иначе
    Если ДатаГод (ДатаДок) < 2009 Тогда
    Операция.Кредит.Счет = СчетПоКоду("62.1",ПланыСчетов.Основной);
    Иначе
    Если ДатаМесяц (ДатаДок) > 10 Тогда
    Операция.Кредит.Счет = СчетПоКоду("76.5",ПланыСчетов.Основной);
    Иначе
    Операция.Кредит.Счет = СчетПоКоду("62.1",ПланыСчетов.Основной);
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    Операция.Кредит.Контрагенты = Контрагенты;
    Операция.Кредит.Договоры = Договоры;
    Операция.Сумма = Сумма;

    КонецЦикла;

    Операция.СуммаОперации = Итог("Сумма");
    Операция.Записать();

    КонецПроцедуры
    Все замечательно работает. НО!!! Дальше делаю конфигуратор -> загрузить измененную конфигурацию. Он загружает, а при запуске выдает подряд 2 ошибки, которые на рисунке.
    Подскажите, в чем может быть проблема??
     

    Вложения:

    • __________.JPG
      __________.JPG
      Размер файла:
      15,5 КБ
      Просмотров:
      85
  2. Gman

    Gman Гость

    Попробуйте сделать тестирование и исправление. Если это не поможет удалите этот документ и скопируйте его из тестовой копии.
     
  3. Спартак

    Спартак Well-Known Member

    Регистрация:
    2 май 2009
    Сообщения:
    69
    Симпатии:
    0
    Тестирование и исправление заканчивается ошибкой невозможности восстановления.

    Я уточню... как сделать так, чтобы все работало, я знаю... просто поменяю обработку проведения в живой базе и все. Это не критично, да и копии делаются регулярно. Меня интересует ПОЧЕМУ происходит эта ошибка??? Ведь структура никак не поменялась, никаких новых элементов не добавлялось... просто поменялась обработка проведения
     
  4. SeverBap

    SeverBap Well-Known Member

    Регистрация:
    18 сен 2007
    Сообщения:
    440
    Симпатии:
    0
    Это от твоего кода не зависило, просто база глюканула по справочнику и документу, скорее всего тебе надо проверить эти dbf на ошибки на этом форуме было такое как-то! проще говоря тебе надо сделать переиндексацию! необходимо удалить файлы с расширением *.cdx - вот тебе и переиндексация!
     
  5. Спартак

    Спартак Well-Known Member

    Регистрация:
    2 май 2009
    Сообщения:
    69
    Симпатии:
    0
    Bap
    попробовал - не помогло.
    Попробовал сделать тестирование и исправление до того, как записываю новую конфигу - получаю вот какие ошибки:
    !!Словарь данных не соответствует конфигурации
    !Таблица - DT294. Не сходится количество полей
    !!!Проверка физической целостности таблиц ИБ Неисправимая ошибка

    Можно ли исправить ошибки внешними средствами?? Или может есть еще вариант как с этим справиться?
     
  6. Vladones

    Vladones Member

    Регистрация:
    17 мар 2008
    Сообщения:
    7
    Симпатии:
    0
    Пробовал ли просто удалить этот самый словарь данных?
    Если не пробовал, сделай так:
    - удалить словарь данных;
    - открыть конфигуратор;
    - попытаться сохранить конфигурацию;
    Если появится сообщение "Отсутствует словарь данных..." выбираем "Продолжить".
    По идее должен созаться новый словарь данных для текущей базы.
     
  7. Спартак

    Спартак Well-Known Member

    Регистрация:
    2 май 2009
    Сообщения:
    69
    Симпатии:
    0
    Vladones

    попробовал. При попытке сохранения выдает
    Error#: -210
    Unrecognized Field Name
    SP57308

    Далее предупреждение - Не выполнено открытие информационной базы
    Предупреждение - Реорганизация данных не выполнена

    А в окне сообщений:
    New DD generate...
    Old DD open process...
    New DD open process...
    Old DB open access...

    И что бы это значило?

    Добавлено: вроде разобрался
    когда-то давно еще до меня добавили в накладную доп. поле. открыл я в dbf-редакторе этот самый dt294 и словарь данных. так вот в словаре есть это новое поле, а в dt294 его нет. В принципе это поле уже не используется.
    Вопросы:
    1. Как так можно добавить поле, чтобы оно не появилось в dbf-е??
    2. Если я загружу md-шник из архива, который был до добавления этого поля (да, у нас есть и такое :)), я что-нибудь потеряю?? (изменений после этого не было)
     
  8. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Надо было делать не загрузку измененной конфигурации, а объединение конфигураций!
    При объединении сравнение происходит по именам объектов метаданных.
    При загрузке измененной - по внутренним ID объектов метаданных.
    В вашем случае не совпали ID какого-то справочника и документа. Как следствие - то, что вы видите на экране и, рискну предположить, разрушение данных.
    Подымайте базу из бэкапа, который вы сделали до "загрузить измененную" (ведь делали же?), потом объединение конфигураций, потом выгрузку данных для себя (для разработки)... А на будущее - забудьте загрузку измененной конфигурации, как страшный сон.
     
  9. Vladones

    Vladones Member

    Регистрация:
    17 мар 2008
    Сообщения:
    7
    Симпатии:
    0
    Ну... В жизни всякие чудеса бывают :) Как вариант - заливка в каталог базы только старых dbf после изменения конфигурации. (допустим, что-то не так пошло после внесения изменений и чел, не особо задумываясь, из резервной копии dbf-файлы скопировал в рабочую).
    Попробуй лучше из словаря удалить упоминание о SP57308
    Может быть взлетит.

    Добавлено:
    Ёлы, про загрузку-то я пропустил при чтении. :wacko: Вот вам и ещё один вариант, как можно в словаре данных поиметь описание несуществующего в dbf поля.
    Так что вариант, предложенный vitfil имеет смысл попробовать.
     
  10. Спартак

    Спартак Well-Known Member

    Регистрация:
    2 май 2009
    Сообщения:
    69
    Симпатии:
    0
    ааааа такое забыть.... виноват :)

    думаю, что именно это и было
    делали B) каждую ночь делается бэкап всех баз и аккуратно складывается на сервере и на 2-х съемных дисках :)
    дадада именно так :)
    я думаю, что скорее всего добавляли в копии, а потом тупо перенесли md-шник :)


    Добавлено: Только что попробовал объединением - появились странные вещи... Когда делаем объединением - вылетает та же самая ошибка. Видимо он при замещении пытается удалить это поле из dbf-а, и там его не обнаруживает... Судя по всему, придется делать просто загрузкой измененной конфигурации
     
  11. Vladones

    Vladones Member

    Регистрация:
    17 мар 2008
    Сообщения:
    7
    Симпатии:
    0
    Так этого и следовало ожидать. Словарь править так и не попробовал?
     
  12. Спартак

    Спартак Well-Known Member

    Регистрация:
    2 май 2009
    Сообщения:
    69
    Симпатии:
    0
    пробовал. та же ошибка. в конфигураторе это поле видно :)
     
Загрузка...
Похожие Темы - Ошибка после доработки
  1. Baindt
    Ответов:
    1
    Просмотров:
    90
  2. ildareshka
    Ответов:
    4
    Просмотров:
    37
  3. Ruska132
    Ответов:
    1
    Просмотров:
    70
  4. Lamerman
    Ответов:
    0
    Просмотров:
    47
  5. Enima
    Ответов:
    0
    Просмотров:
    64

Поделиться этой страницей