Востановление 1SJOURNAL.DBF для ТиС и Бухгалтерии

Публикация № 18653

Разработка - Практика программирования

3
Тут описан метод пересоздания 1SJOURNAL.DBF в случае его разрушения.

И так начнем с того, что восстановление данных для ТиС не всегда сработает. Сработает 100% если все документы введены либо на основании либо являются основании т.к. все на это и строиться. Для Бухгалтерии все строиться на файле с проводками.

Все началось с того что клиент позвонил и сказал что база не запускается и пишет что 1SJOURNAL.DBF кердык. Конечно я попытался тестировать, выгружать и т.д. но не помогло.

И так создаем новый отчет. На кнопку сформировать вешаем функцию Выполнить() и добавляем 2 радио кнопки с идентификатором Конфа. Первая кнопка Бухгалтерия а вторая ТиС. И еще кидаем на форму Текст в формуле которого пишем Mess. А ниже код вставляем в модуль.

Да этот отчет надо запустить в той нофе что грохнулась в разделенном режиме. Для того чтобы запустить базу надо удалить битый файл 1SJOURNAL.DBF и пересохранить конфу в конфигураторе. после этого заходите и запускайте отчет. Он создаст файл __temp.dbf после чего вы его переименовываете на 1SJOURNAL.DBF и вот и все.

Кстати вот этот кусок кода я указал руками название колонок - это коды таблиц отборов и общих реквизитов. Так что учтите это для ТиС.

    Если Конфа = 2 Тогда

       Ф1.ДобавитьПоле("SP74",  "C",  9, 0);

       Ф1.ДобавитьПоле("SP798",  "C",  9, 0);

       Ф1.ДобавитьПоле("SP4056",  "C",  9, 0);

       Ф1.ДобавитьПоле("SP5365",  "C",  9, 0);

       Ф1.ДобавитьПоле("DS1946",  "N",  1, 0);

       Ф1.ДобавитьПоле("DS4757",  "N",  1, 0);

       Ф1.ДобавитьПоле("DS5722",  "N",  1, 0);    

   КонецЕсли;




И вот сам код:


Перем Mess;



Функция Догнать(Стр, Длина, Символ = " ")

   Пока СтрДлина(Стр) < Длина Цикл

       Стр = Символ + Стр;

   КонецЦикла;

   Возврат Стр;

КонецФункции



Функция ДогнатьПрав(Стр, Длина, Символ = " ")

   Пока СтрДлина(Стр) < Длина Цикл

       Стр =  Стр + Символ;

   КонецЦикла;

   Возврат Стр;

КонецФункции



Процедура Выполнить()

   // ---------------------------------------------------------------------------------------------------

   Mess = "Инициализация данных ...";

   Форма.Обновить();

   R = СоздатьОбъект("RainbowService");

   M = СоздатьОбъект("MetaDataWork");

   ТЗ0 = СоздатьОбъект("ТаблицаЗначений");  // сопоставление журналов

   ТЗ0.НоваяКолонка("IDDOCDEF");

   ТЗ0.НоваяКолонка("IDJOURNAL");

   ТЗ0.НоваяКолонка("NUMBERPERIOD");

   ТЗ0.НоваяКолонка("NUMBERTYPE");

   ТЗ0.НоваяКолонка("NUMBERLEN", "Число", 5);

   ТЗ1 = СоздатьОбъект("ТаблицаЗначений");  // сопоставление даты и времени

   ТЗ1.НоваяКолонка("IDDOC");

   ТЗ1.НоваяКолонка("DATE", "Дата", 8);

   ТЗ1.НоваяКолонка("TIME");

   ТЗ1.НоваяКолонка("STATUS","Число");  

   Если Конфа = 2 Тогда

       Для инд = 1 По Метаданные.Регистр() Цикл

           ТЗ1.НоваяКолонка("RF"+СокрЛП(M.GetMetaDataID(Метаданные.Регистр(инд))),"Число");

       КонецЦикла;    

   КонецЕсли;  

   ТЗ2 = СоздатьОбъект("ТаблицаЗначений");  // нумерация по периодам

   ТЗ2.НоваяКолонка("DNPREFIX", "Строка", 18);

   ТЗ2.НоваяКолонка("LASTNUMBER", "Число", 20);

   Ф = СоздатьОбъект("XBase");     // dh*.dbf

   Ф0 = СоздатьОбъект("XBase");    // 1sentry.dbf

   Ф1 = СоздатьОбъект("XBase");    // __temp.dbf (1sjourn.dbf)

   Ф2 = СоздатьОбъект("XBase");    // ra*.dbf

   // ---------------------------------------------------------------------------------------------------

   Для инд = 1 По Метаданные.Документ() Цикл

       ТЗ0.НоваяСтрока();

       ID10 = M.GetMetaDataID(Метаданные.Документ(инд));

       ТЗ0.IDDOCDEF = ВРег(СокрЛП(R.IntToBase(ID10, 36)));

       ТЗ0.NUMBERPERIOD = Метаданные.Документ(инд).ПериодичностьНомера;

       ТЗ0.NUMBERTYPE = Метаданные.Документ(инд).ТипНомера;

       ТЗ0.NUMBERLEN = Число(Метаданные.Документ(инд).ДлинаНомера);

       ID10 = 0;

       ТЗ0.IDJOURNAL = СокрЛП(0);

       Для инд1 = 1 По Метаданные.Журнал() Цикл

           Если Метаданные.Журнал(инд1).Представление() =

           Метаданные.Документ(инд).Журнал.Представление() Тогда

               ID10 = M.GetMetaDataID(Метаданные.Журнал(инд1));

               ТЗ0.IDJOURNAL = ВРег(СокрЛП(R.IntToBase(ID10, 36)));

               Прервать;

           КонецЕсли;

       КонецЦикла;

   КонецЦикла;

   // ---------------------------------------------------------------------------------------------------

   Если Конфа = 2 Тогда

       //ТОРГОВЛЯ

       Mess = "Считываем данные о времени и дате документа из 1SCRDOC.dbf";

       Форма.Обновить();

       Ф0.ОткрытьФайл(КаталогИБ() + "1SCRDOC.dbf", КаталогИБ() + "1SCRDOC.cdx", 1);

       Ф0.Первая();

       Пока Ф0.ВКонце() = 0 Цикл

           стр = 0;

           Если ТЗ1.НайтиЗначение(СокрЛП(Ф0.CHILDID), стр, "IDDOC") = 0 Тогда

               ТЗ1.НоваяСтрока();

               ТЗ1.IDDOC = СокрЛП(Ф0.CHILDID);

               ТЗ1.DATE = Ф0.CHILDDATE;

               ТЗ1.TIME = Ф0.CHILDTIME;  

               ТЗ1.STATUS = 0;

           КонецЕсли;

           Ф0.Следующая();

       КонецЦикла;            

       

       //Считывем из регистров документы и понимаем что они проведены

       ТекФайл = ФС.НайтиПервыйФайл(КаталогИБ() + "ra*.dbf");

       Пока ПустоеЗначение(ТекФайл) = 0 Цикл  

           Форма.Обновить();

           Mess = "Считываем данные из "+ТекФайл;

           Ф2.ОткрытьФайл(КаталогИБ() + ТекФайл,, 1);

           Ф2.Первая();

           Пока Ф2.ВКонце() = 0 Цикл

               стр1 = 0;

               Если ТЗ1.НайтиЗначение(СокрЛП(Ф2.IDDOC), стр1, "IDDOC") = 1 Тогда

                   ТЗ1.УстановитьЗначение(стр1,"STATUS",1);  

                   ИДРегистра = СтрЗаменить(ТекФайл,"RA","");

                   ИДРегистра = СтрЗаменить(ИДРегистра,".DBF","");

                   ТЗ1.УстановитьЗначение(стр1,"RF"+ИДРегистра,1);  

               КонецЕсли;

               Ф2.Следующая();

           КонецЦикла;

           Ф2.ЗакрытьФайл();

           ТекФайл = ФС.НайтиСледующийФайл();

       КонецЦикла;

       

   ИначеЕсли Конфа = 1 Тогда    

       //БУХГЕЛТЕРИЯ

       Форма.Обновить();

       Mess = "Считываем данные о времени и дате документа из 1sentry.dbf";

       Ф0.ОткрытьФайл(КаталогИБ() + "1sentry.dbf", КаталогИБ() + "1sentry.cdx", 1);

       Ф0.ТекущийИндекс("DATETIME");

       Ф0.Первая();

       Пока Ф0.ВКонце() = 0 Цикл

           стр = 0;

           Если ТЗ1.НайтиЗначение(СокрЛП(Ф0.DOCID), стр, "IDDOC") = 0 Тогда

               ТЗ1.НоваяСтрока();

               ТЗ1.IDDOC = СокрЛП(Ф0.DOCID);

               ТЗ1.DATE = Ф0.DATE;

               ТЗ1.TIME = Ф0.TIME;    

               ТЗ1.STATUS = 0;

           КонецЕсли;

           Ф0.Следующая();

       КонецЦикла;

   КонецЕсли;

   Сообщить("Удалось найти дату и время у "+ТЗ1.КоличествоСтрок()+" документов","!");

   // ---------------------------------------------------------------------------------------------------

   Mess = "Создаем структуру __temp.dbf ...";

   Форма.Обновить();

   Ф1.ДобавитьПоле("IDJOURNAL", "C",  4, 0);

   Ф1.ДобавитьПоле("IDDOC",     "C",  9, 0);

   Ф1.ДобавитьПоле("IDDOCDEF",  "C",  4, 0);

   Ф1.ДобавитьПоле("APPCODE",   "N",  3, 0);

   Ф1.ДобавитьПоле("DATE",      "D",  8, 0);

   Ф1.ДобавитьПоле("TIME",      "C",  6, 0);

   Ф1.ДобавитьПоле("DNPREFIX",  "C", 18, 0);

   Ф1.ДобавитьПоле("DOCNO",     "C", 10, 0);

   Ф1.ДобавитьПоле("CLOSED",    "N",  1, 0);

   Ф1.ДобавитьПоле("ISMARK",    "C",  1, 0);

   Ф1.ДобавитьПоле("ACTCNT",    "C",  6, 0);

   Ф1.ДобавитьПоле("VERSTAMP",  "C",  6, 0);

   Для инд = 1 По Метаданные.Регистр() Цикл

       Ф1.ДобавитьПоле("RF" + СокрЛП(M.GetMetaDataID(Метаданные.Регистр(инд))),

       "N",  1, 0);

   КонецЦикла;    



   Если Конфа = 2 Тогда

       Ф1.ДобавитьПоле("SP74",  "C",  9, 0);

       Ф1.ДобавитьПоле("SP798",  "C",  9, 0);

       Ф1.ДобавитьПоле("SP4056",  "C",  9, 0);

       Ф1.ДобавитьПоле("SP5365",  "C",  9, 0);

       Ф1.ДобавитьПоле("DS1946",  "N",  1, 0);

       Ф1.ДобавитьПоле("DS4757",  "N",  1, 0);

       Ф1.ДобавитьПоле("DS5722",  "N",  1, 0);    

   КонецЕсли;

   

   Ф1.СоздатьФайл("__temp.dbf");

   // ---------------------------------------------------------------------------------------------------

   Mess = "Сохраняем структуру __temp.dbf ...";

   Форма.Обновить();

   ТекФайл = ФС.НайтиПервыйФайл(КаталогИБ() + "dh*.dbf");

   _ТекВрем = ТекущееВремя();

   _Час = Число(Сред(_ТекВрем,1,2));

   _Мин = Число(Сред(_ТекВрем,4,2));

   _Сек = Число(Сред(_ТекВрем,7,2));

   _ТекВрем = _Час * 3600 + _Мин * 60 + _Сек;

   Пока ПустоеЗначение(ТекФайл) = 0 Цикл  

       Форма.Обновить();

       Mess = "Считываем данные из "+ТекФайл;

       Ф.ОткрытьФайл(КаталогИБ() + ТекФайл,, 1);

       Ф.Первая();

       Пока Ф.ВКонце() = 0 Цикл

           стр1 = 0;    

           Проведен = 0;

           Если ТЗ1.НайтиЗначение(СокрЛП(Ф.IDDOC), стр1, "IDDOC") = 1 Тогда

               _Дата = ТЗ1.ПолучитьЗначение(стр1, "DATE");

               _Время = ТЗ1.ПолучитьЗначение(стр1, "TIME");

               Проведен = ТЗ1.ПолучитьЗначение(стр1, "STATUS");

           Иначе

               _Дата = РабочаяДата();

               _ТекВрем = _ТекВрем + 1;

               _Время = ВРег(СокрЛП(R.IntToBase(_ТекВрем * 10000, 36)));

               Сообщить("Не удалось найти дату и время для документа "+Ф.IDDOC+". У него будет дата "+_Дата+" и время "+_Время,"!!");

           КонецЕсли;

           Ф1.Добавить();

           Ф1.УстановитьЗначениеПоля("IDDOC", Догнать(Ф.IDDOC, 6));

           Ф1.УстановитьЗначениеПоля("DATE", _Дата);

           Ф1.УстановитьЗначениеПоля("TIME", _Время);

           Ф1.УстановитьЗначениеПоля("CLOSED", Проведен);

       

           Если Конфа = 2 Тогда

               Если стр1<>0 Тогда

                   Для инд = 1 По Метаданные.Регистр() Цикл

                       Ф1.УстановитьЗначениеПоля("RF" + СокрЛП(M.GetMetaDataID(Метаданные.Регистр(инд))), ТЗ1.ПолучитьЗначение(стр1,"RF" + СокрЛП(M.GetMetaDataID(Метаданные.Регистр(инд)))));

                   КонецЦикла;    

               КонецЕсли;

           КонецЕсли;

           

           _IDDOCDEF = Врег(R.IntToBase(Число(Сред(ТекФайл, 3, СтрДлина(ТекФайл) -

           6)), 36));

           Ф1.УстановитьЗначениеПоля("IDDOCDEF", Догнать(_IDDOCDEF, 4));

           стр0 = 0;

           Если ТЗ0.НайтиЗначение(СокрЛП(_IDDOCDEF), стр0, "IDDOCDEF") = 1 Тогда

               _DNPREFIX = Сред(ТекФайл, 3, СтрДлина(ТекФайл) - 6);

               Если СокрЛП(ТЗ0.ПолучитьЗначение(стр0, "NUMBERPERIOD")) = "Год" Тогда

                   _DNPREFIX = Догнать(_DNPREFIX + СокрЛП(ДатаГод(_Дата)), 14);

               ИначеЕсли СокрЛП(ТЗ0.ПолучитьЗначение(стр0, "NUMBERPERIOD")) = "Квартал"

               Тогда

                   _DNPREFIX = Догнать(_DNPREFIX + СокрЛП(ДатаГод(_Дата)) +

                   СокрЛП(ДатаМесяц(НачКвартала(_Дата))), 16);

               ИначеЕсли СокрЛП(ТЗ0.ПолучитьЗначение(стр0, "NUMBERPERIOD")) = "Месяц"

               Тогда

                   _DNPREFIX = Догнать(_DNPREFIX + СокрЛП(ДатаГод(_Дата)) +

                   СокрЛП(ДатаМесяц(_Дата)), 16);

               ИначеЕсли СокрЛП(ТЗ0.ПолучитьЗначение(стр0, "NUMBERPERIOD")) = "День"

               Тогда

                   _DNPREFIX = Догнать(_DNPREFIX + СокрЛП(ДатаГод(_Дата)) +

                   СокрЛП(ДатаМесяц(_Дата)) + СокрЛП(ДатаЧисло(_Дата)), 18);

               Иначе

                   _DNPREFIX = Догнать(_DNPREFIX, 10);

               КонецЕсли;

               Ф1.УстановитьЗначениеПоля("DNPREFIX", _DNPREFIX);

               стр2 = 0;

               Если ТЗ2.НайтиЗначение(ДогнатьПрав(_DNPREFIX, 18), стр2, "DNPREFIX") = 0

               Тогда

                   ТЗ2.НоваяСтрока();

                   ТЗ2.DNPREFIX = _DNPREFIX;

                   ТЗ2.LASTNUMBER = 1;

                   стр2 = ТЗ2.КоличествоСтрок();

               Иначе

                   ТЗ2.УстановитьЗначение(стр2, "LASTNUMBER", ТЗ2.ПолучитьЗначение(стр2,

                   "LASTNUMBER") + 1);

               КонецЕсли;

               Если ТЗ0.ПолучитьЗначение(стр0, "NUMBERTYPE") = "Текстовый" Тогда

                   Ф1.УстановитьЗначениеПоля("DOCNO",

                   Догнать(СокрЛП(ТЗ2.ПолучитьЗначение(стр2, "LASTNUMBER")),

                   ТЗ0.ПолучитьЗначение(стр0, "NUMBERLEN"), "0"));

               Иначе

                   Ф1.УстановитьЗначениеПоля("DOCNO", ТЗ2.ПолучитьЗначение(стр2,

                   "LASTNUMBER"));

               КонецЕсли;

               Ф1.УстановитьЗначениеПоля("IDJOURNAL",

               Догнать(ТЗ0.ПолучитьЗначение(стр0, "IDJOURNAL"), 4));

           КонецЕсли;

           Ф1.Записать();

           Ф.Следующая();

       КонецЦикла;

       Ф.ЗакрытьФайл();

       ТекФайл = ФС.НайтиСледующийФайл();

   КонецЦикла;

   Ф.ЗакрытьФайл();

   // ---------------------------------------------------------------------------------------------------

   Mess = "Закончили. Переименуйте __temp.dbf в 1SJOURNAL.DBF и замените !";

   Форма.Обновить();

КонецПроцедуры



Процедура ПриОткрытии()

   Mess = "Для начала восоздания 1SJOURNAL.DBF необходимо зайти в разделенном режиме !!!";

КонецПроцедуры



Попытка

   ЗагрузитьВнешнююКомпоненту("rainbow.dll");

Исключение

   Сообщить("Не удается загрузить внешнюю компоненту.","!");

   Сообщить("Проверьте расположение необходимых библиотек:

   |"+КаталогПрограммы()+"Rainbow.dll или "+КаталогИБ()+"Rainbow.dll

   |"+ФС.WindowsКаталог()+"system\mfc42.dll

   |"+ФС.WindowsКаталог()+"system\msvcrt.dll");

   Форма.Закрыть();

КонецПопытки;

                       

Конфа = 1;
3

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. artbear 1158 24.12.08 13:26 Сейчас в теме
Где-то на этом сайте что-то подобное уже было вроде бы :)
kasperok; +1 Ответить
2. kasperok 31 24.12.08 14:04 Сейчас в теме
Ну я поиском посмотрел и не чего не нашел.
3. LenaTorpeda 24.12.08 16:46 Сейчас в теме
R = СоздатьОбъект("RainbowService");
{C:\DOCUMENTS AND SETTINGS\TORPEDA\РАБОЧИЙ СТОЛ\ВОССТАНОВЛЕНИЕ ЖУРНАЛА.ERT(39)}: Неудачная попытка создания объекта (RainbowService)
4. LenaTorpeda 24.12.08 16:48 Сейчас в теме
У меня такой dll нет. Жаль .Штука наверное хорошая.
5. fAngel 371 24.12.08 18:31 Сейчас в теме
6. LenaTorpeda 24.12.08 19:01 Сейчас в теме
fAngel ,там вот это: Sorry, no matches were found containing rainbow.dll

7. kasperok 31 25.12.08 11:47 Сейчас в теме
8. Tolpinski 56 25.12.08 13:22 Сейчас в теме
Артур, ты в ворде Описьки проверяй :)
9. Ёпрст 1036 03.01.09 10:59 Сейчас в теме
10. PovAndy 07.10.13 16:10 Сейчас в теме
Если честно, не совсем понял, как привязать обработку к 1С 7.7 УСН 1,3

Может кто-нибудь подсказать?

Пробовал использовать обработку http://1c.proclub.ru/modules/mydownloads/personal.php?lid=439&cid=76 , она всё создаёт, но в резуйльтате файл журнала система распознаёт как битый "Таблица - 1SJOURN. Длина записи не соотвествует ожидаемой
Проверка физической целостности таблиц ИБ. Неисправимая ошибка."
11. Ёпрст 1036 07.10.13 18:28 Сейчас в теме
Дык откройте его любым дбф редактором и посмотрите что унутри..
Тем более, все поделки по восстановлению 1сджоурн не усё восстанавливають.
Оставьте свое сообщение

См. также

Анализ 1С: Предприятие 7.7 с помощью ELK стека 27

Статья Системный администратор Программист Нет файла v7.7 1cv7.md Бесплатно (free) Журнал регистрации Администрирование данных 1С

Рассмотрим систему на базе Elasticsearch, Logstash и Kibana (ELK Stack) для анализа логов 1С Предприятие 7.7 с целью визуализации и анализа событий 1С.

22.01.2019    5009    phsin    18       

Библиотека печати на PDF принтер Bullzip для 1С 7.7 7

Статья Программист Нет файла v7.7 Windows Бесплатно (free) Администрирование данных 1С

В данной статье приведено несколько методов, которые позволят подключить PDF принтер Bullzip к своему проекту на платформе 1С Предприятие 7.7. Используя PDF принтер, вы сможете сохранять ваши табличные документы в формате PDF. Вы программно можете задавать имя PDF файла и его расположение на диске.

11.12.2018    3436    infosoft-v    5       

Логирование в 1С 22

Статья Системный администратор Программист Нет файла v7.7 v8 Windows Бесплатно (free) Администрирование данных 1С

Часто бывает необходимо отслеживать состояние часто повторяющихся регламентных заданий. Например, синхронизация данных с IP-телефонией, которая может производиться каждую минуту, синхронизация с сайтами, синхронизация данных с различными системами. Использовать для этих целей логирование 1С чрезвычайно неэффективно и не удобно. В таких случаях удобно использовать подход, применяемый в Unix-системах: писать логи в обычные текстовые файлы, а потом делать их обработку через эффективно работающие Unix-команды: grep, tail, cat, less и т.п.

18.05.2016    18070    rudjuk    20       

Проверка часового пояса 9

Статья Программист Нет файла v7.7 Windows Бесплатно (free) Практика программирования

При использовании терминалок для удаленных баз, иногда при входе в базу данных необходимо исключить возможность входа пользователей с компьютеров с другим часовым поясом. Например, работают в Новосибирской базе с временем UTC +6 и пытаются зайти в базу с UTC +3.

16.05.2016    8418    kudenzov    3       

[ПОЛЕЗНЯШКА, 7.7] Как посчитать итоги по документам черным запросом с изподвывертом? 13

Статья Программист Нет файла v7.7 1cv7.md Windows Бесплатно (free) Практика программирования

Мелкая полезняшка, считает запросом итоговую сумму документов и количество документов.

12.03.2016    15702    CheBurator    18       

.Net в 1С. На примере использования HTTPClient, AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция 111

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования WEB

Часто приходится парсить сайты, в том числе с авторизацией, перескакивая со страницы на страницу по ссылкам. Тот, кто занимался вэб программированием, знает, как удобно использовать JQuery и CSS селекторы. На .Net написана очень удобная библиотека AngleSharp. Я покажу, как с её помощью можно значительно облегчить себе труд.

10.03.2016    48888    Serginio    33       

.Net в 1С. Асинхронные HTTP запросы, отправка Post нескольких файлов multipart/form-data, сжатие трафика с использованием gzip, deflate, удобный парсинг сайтов и т.д. 37

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования Разработка внешних компонент WEB

Очень часто нужно при работе с HTTP сервисами или сайтами использовать Асинхронные HTTP запросы, отправку на сервер нескольких файлов, использование сжатия трафика. Эта статья про то, как этого легко добиться.

09.03.2016    25826    Serginio    22       

Использование классов .Net в 1С для новичков 147

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования Разработка внешних компонент Универсальные функции

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    63605    Serginio    104       

Пример HTTP запроса к УТМ ЕГАИС на платформе 1С 7.7 15

Статья Программист Нет файла v7.7 1cv7.md Россия Windows Оптовая торговля Розничная торговля Бесплатно (free) Практика программирования Внешние источники данных

Запрос реализован на объекте ServerXMLHTTP из встроенной в Windows библиотеки MSXML, результатом запроса является XML объект DOMDocument из той же библиотеки MSXML со встроенным интерфейсом его обработки

16.12.2015    20357    Palmer1976    3       

Экспорт нескольких MXL таблиц в один XLS файл, на отдельные листы. Простой алгоритм 20

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel

Статья посвящена распространённому вопросу - как сохранить несколько таблиц (отчетов) в формате MXL, с которым работает 1С, на отдельные листы одного Excel файла. Освещается простой алгоритм решения проблемы штатными средствами, без использования внешних модулей и библиотек (не относящихся к 1С и Excel).

23.11.2015    14163    etmarket    14       

Процедура расшифровки ячейки таблицы в отчетах 1С 7.7 11

Статья Программист Нет файла v7.7 1cv7.md Windows Бесплатно (free) Практика программирования Универсальные функции

Хочу поделиться с вами универсальной процедурой для расшифровки ячеек печатной формы отчетов в 1С 7.7.

24.09.2015    13994    Anzhey    13       

Универсальный способ сравнения таблиц 15

Статья Программист Нет файла v7.7 v8 Бесплатно (free) Практика программирования

На эту тему уже есть статьи, но этот способ нигде не описан. Хотя я его использую с тех пор, как занимаюсь программированием. Его преимущество в простоте и универсальности: можно применять на 1С, SQL, а также в любом другом языке программирования.

05.07.2015    15164    json    1       

Числа прописью в родительном падеже в 7.7? Легко! 13

Статья Программист Нет файла v7.7 1cv7.md Windows Бесплатно (free) Практика программирования

Вывод числительных прописью в родительном падеже штатными средствами в три строчки кода.

20.06.2015    10256    gimalaj    3       

Хитрости сохранения табличного документа в Excel для дальнейшей работы с ним 78

Статья Программист Нет файла v7.7 v8 1cv8.cf 1cv7.md Windows Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel

Все пользователи 1С всех версий (начиная с 7-й) сталкиваются с проблемой нормальной работы с данными, сохраненными в Excel файл. Есть некоторые хитрости, которые позволяют облегчить работу с сохраненными данными из 1С в формат Excel.

16.01.2015    71918    shmellevich    35       

SQL-доступ к журналу регистрации 1С:Предприятие 7.7 7

Статья Системный администратор Программист Нет файла v7.7 1cv7.md Windows Бесплатно (free) Журнал регистрации

Все, кто работают с 7.7, знают, что журнал регистрации тормозит нещадно, в связи с чем пользы от него очень мало, и её ещё меньше, когда размер журнала превышает хотя бы 50 мегабайт. На Инфостарте, по- моему, даже есть средства для просмотра журнала, может, даже они эффективны, но моей мечтой всегда был sql-доступ к этому журналу, т.к. это просто, наглядно, удобно и, что самое важное, - очень быстро. Кому интересно - добро пожаловать.

11.12.2014    12945    VladC#    8       

Очень долго запускается 1С предприятие 7.7 (конфигуратор, монитор, отладчик) 9

Статья Системный администратор Программист Нет файла v7.7 1cv7.md Windows Бесплатно (free) Администрирование данных 1С

Если у Вас всегда очень долго открывается 1С, заставка висит в течение нескольких минут, зависает при старте предприятия 7.7 и конфигуратор, и монитор, и отладчик, скорее всего, дело в файле 1cv7evt.txt, файл 1cv7evt.txt в подкаталоге Syslog в каталоге базы находится по адресу \\ИмяСервера\ИмяКаталогаБаз\ИмяБазы\SYSLOG\1cv7evt.txt, вернее в размере этого файла. Проблема проявляется в том, что во время запуска 1С предприятия 7.7 и конфигуратора, и монитора, и отладчика заставка висит несколько минут. Отключите пользователей, перенесите файл 1cv7evt.txt в другую папку, и 1С 7.7 будет стартовать очень быстро.

09.09.2014    31917    ksnik    14       

ЗаполнитьЗначенияСвойств - заставляем работать в 7.7 11

Статья Программист Нет файла v7.7 1cv7.md Бесплатно (free) Практика программирования

Если вы используете в работе 1С:Предприятие 8.х, то наверняка знакомы и с замечательной системной процедурой, как ЗаполнитьЗначенияСвойств(). Ее использование помогает значительно упростить написание программного кода в ряде случае, делает его (код) более наглядным и простым. Но что же делать тем, кто до сих пор использует (постоянно или иногда) 1С:Предприятие 7.7?

24.07.2014    18955    tomvlad    5       

Реализация Ctrl+Z в 1С 7.7 (ТиС) 7

Статья Программист Нет файла v7.7 1С7:ТиС Windows Бесплатно (free) Практика программирования

В семерке отсутствует возможность отменять последнее действие в формах документов. В данной статье будет рассмотрен пример реализации данной функции. Возможно, кому-нибудь пригодится.

15.07.2013    5736    a.o.popova    10       

Быстрый поиск в справочниках по наименованию, с использованием svcsvc.dll 12

Статья Программист Нет файла v7.7 1cv7.md Windows Бесплатно (free) Поиск данных Универсальные обработки Работа с интерфейсом

По аналогии с http://infostart.ru/public/14286/, недавно узнал что в svcsvc.dll несколько обновился функционал, в частности был добавлен метод AddString(). В прилагаемом коде показан запрос, реализованный методами ВК 1SQlite, т.е. только для DBF. Это только пример. Т.е. если например у справочника отсутствует поле "Наименование", то скорее всего будет ошибка. Тем не менее критика приветствуется))) Необходимые ВК: 1SQlite, FORMEX, svcsvc.dll (отсюда: http://www.1cpp.ru/forum/YaBB.pl?num=1373266553). p.s. Спасибо огромное уважаемому ADirks за все эти прекрасные плюшки, и помощь в их освоении)))

12.07.2013    127153    unichkin    10       

Исправление ошибок DBCC CHECKDB (1С, SQL) вручную 42

Статья Системный администратор Нет файла v7.7 1cv7.md Windows Бесплатно (free) Тестирование и исправление

Если Вы наблюдаете сообщение "could not continue scan with nolock" и подобные ему - значит эта статья для Вас. В статье рассказывается, как поправить ошибки выданные DBCC CHECKDB вручную.

01.07.2013    67897    Вадимко    3       

"Динамическое обновление" в 1С Предприятие 7.7 15

Статья Системный администратор Программист Нет файла v7.7 1cv7.md Windows Бесплатно (free) Распределенная БД (УРИБ, УРБД) Администрирование данных 1С

Всем известен механизм динамического обновления в 1С Предприятие 8.х. Однако есть недокументированная возможность сделать тоже самое (естественно с некоторыми особенностями) в 1С Предприятие 7.7

10.04.2013    13025    dime2    16       

Конвертация данных 2.1 (2.1.3.1) 1С 7.7 - 1С 8.Х передача параметра ПКО 14

Статья Системный администратор Программист Нет файла v7.7 v8 КД Бесплатно (free) Практика программирования Перенос данных из 1С7.7 в 1C8.X

Передача параметров по умолчанию доступна только для баз 1С 8.х -1С 8.х. Показан пример, как передать параметры из 1С 7.7 - 1С 8.х

10.12.2012    22434    serg_gres    6       

Восстановление БД 1с 7.7 после шифрования вирусом файлом 13

Статья Системный администратор Программист Нет файла v7.7 1cv7.md Windows Бесплатно (free) Тестирование и исправление

После расшифровки антивирусом базы - у всех файлов отсутствует 20% начала файла. Способ восстановить данные с минимальными потерями

19.11.2012    17200    msvsoft    9       

Пакетный режим работы конфигуратора 1C 7.7 8

Статья Системный администратор Нет файла v7.7 1cv7.md Россия Windows Бесплатно (free) Администрирование данных 1С

Многие ежедневно сталкиваются с рутинными процедурами администрирования баз данных 1С. К ним можно отнести выгрузку и сохранение данных, тестирование и исправление информационной базы, обмен данными между распределенными базами данных. Как раз в этом случае и можно воспользоваться пакетным режимом работы конфигуратора. Работа в пакетном режиме подразумевает выполнение программой последовательных действий без участия пользователя. Причем сама последовательность действий должна быть описана пользователем по определенным правилам с использованием документированных ключевых параметров.

26.09.2012    20723    taril    8       

Автоматическое регулярное разворачивание оперативных бэкапов (совсем просто) в MS SQL 2008 35

Статья Системный администратор Нет файла v7.7 v8 1cv8.cf 1cv7.md Россия Windows Бесплатно (free) Архивирование (backup)

В работе регулярно возникает необходимость протестировать поведение программы на копии рабочей базы с актуальными данными

10.08.2012    15743    sergiobargio1    6       

Динамическая фильтрация в справочнике при вводе наименования 15

Статья Программист Нет файла v7.7 1cv7.md Россия Бесплатно (free) Практика программирования

Позволяет в открытой форме списка, выбора или подбора справочника производить динамическую фильтрацию по набранному наименованию.

02.07.2012    14437    maxpiter    62       

Обновление базы 1с 7.7. с помощью движка 1с 8.х 92

Статья Системный администратор Программист Нет файла v7.7 1cv7.md Россия Бесплатно (free) Практика программирования Администрирование данных 1С

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

28.04.2012    16131    Valerich    31       

v77. Робот 43

Инструменты и обработки no Внешняя обработка (ert,epf) v7.7 1cv7.md Россия Бесплатно (free) Практика программирования

Исполнитель Робот. Учебное пособие по программированию для детей дошкольного возраста. Без внешних компонент.

09.04.2012    10381    54    item    18       

v77. Блокировка системы 6

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Россия Бесплатно (free) Администрирование данных 1С

Инструмент администратора. Блокировка системы с целью "горячего" резервного копирования ИБ.

23.03.2012    9008    27    item    22       

Запуск внешней обработки по расписанию v7.7 39

Статья Программист Нет файла v7.7 1cv7.md Россия Windows Бесплатно (free) Практика программирования Администрирование данных 1С

Неоднократно возникали задачи организовать, например ежедневную выгрузку и отправку отчетов по эл.почте, и вот…

20.03.2012    39894    Yury1001    17       

v77. Закладки в многоуровневом справочнике аля Total Commander 28

Инструменты и обработки Программист Конфигурация (md, cf) v7.7 1cv7.md Россия Бесплатно (free) Практика программирования

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

09.03.2012    9024    44    item    17       

v77. Паинт 53

Инструменты и обработки Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Россия Бесплатно (free) Практика программирования

v77. 1С:Паинт :) Такая вот игрушка. Без внешних компонент.

06.03.2012    12192    81    item    38       

Как уменьшить количество заблокированных объектов 26

Статья Программист Нет файла v7.7 1cv7.md Россия Бесплатно (free) Практика программирования

История о том как я решил пересобрать форму справочника клиентов и чем это все закончилось...

12.01.2012    13408    ShEvOvIcH    18       

Как обновлять не типовую конфигурацию 7.7 43

Статья Системный администратор Программист Нет файла v7.7 1cv7.md Россия Бесплатно (free) Администрирование данных 1С

Меня часто спрашивают о том, как можно обновить не типовую конфигурацию, в которую внесены какие-либо изменения. Наконец, нашел немного свободного времени и решил написать про это небольшую статью. Далее, все что из этого всего вышло.

28.10.2011    27077    Nicholas    36       

Хитрость, чтобы после установки обновления 77, 1с сама не добавляла лишние ссылки в "список баз" окна запуска 99

Статья Программист Нет файла v7.7 1cv7.md Россия Windows Бесплатно (free) Администрирование данных 1С

Тем кому часто приходится распаковывать обновления 77 может пригодиться Хитрость, чтобы после установки обновления 77, 1с сама не добавляла лишние ссылки в "список баз" окна запуска.

18.09.2011    13535    bsturtle    51       

7.7.: Готовим md-файл для публикации. В картинках. 46

Статья Программист Нет файла v7.7 1cv7.md Россия Бесплатно (free) Практика программирования

Вы доработали типовую конфигурацию: скажем, добавили новый Документ, и хотите им поделиться с обществом ИС. Но нельзя же выложить МД-шник целиком, это будет нарушением правил. И как тут быть?

14.09.2011    15245    Арчибальд    21       

Учет доверенностей 6

Статья Программист Нет файла v7.7 1С7:Бух 1С7:Комплекс 1С7:ТиС 1С7:ПУБ Документооборот и делопроизводство Бесплатно (free) Практика программирования

В расходных документах есть необходимость проставления доверенности. Но заносить каждый раз одни и те же данные бывает утомительно. особенно при больших оборотах.

08.09.2011    9798    Sykoku    8       

LockDB - утилита для обеспечения OnLine копирования информационной базы данных "1С:Предприятие 7.7". 11

Инструменты и обработки Системный администратор Программист Приложение (exe) v7.7 1cv7.md Россия Бесплатно (free) Администрирование данных 1С

Утилита совместима только с разработками: DBEng32 (8.0.0.9, Share) http://infostart.ru/public/16268/ DBEng32 (6.0.4.2, Advantage 8.1/9.1) http://infostart.ru/public/15211/ DBEng32 (5.1.3.2, CodeBase 6.5) http://infostart.ru/public/14664/ Начиная с указанных версий и выше.

25.06.2011    14973    33    hogik    6       

Прямой запрос на выборку подчиненных документов 6

Инструменты и обработки Программист Конфигурация (md, cf) v7.7 openconf 1cv7.md Россия Бесплатно (free) Практика программирования

Иногда необходимо получить список или таблицу документов, подчиненных выбранному. Для этого в глобальном модуле была написана функция с прямым запросом на выборку подчиненных документов. Работает только в SQL версии и при установленной внешней компоненте 1С++ !

26.05.2011    17056    Vix    5