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

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

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

Тут описан метод пересоздания 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;

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. artbear 1180 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 57 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сджоурн не усё восстанавливають.
12. Gtrby2008 27.02.20 12:13 Сейчас в теме
Добрый день! Может не сюда, простите.
Файл 1SENTRY.DBF "обнулился". Т.е. его размер стал 0 кб. Но Файл 1SENTRY.CDX остался. Можно ли как-то восстановить 1SENTRY.DBF? Перепроведение не поможет, много ручных проводок.
Оставьте свое сообщение

См. также

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

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

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

27.01.2016    71260    0    Serginio    108    

Маркировка лекарств - как передать код маркировки при продаже через ККТ Штрих-М

Практика программирования ККМ v7.7 Здравоохранение, медицина, стоматология Фармацевтика, аптеки Россия Бесплатно (free)

Пример программного кода для вывода чеков на ККМ Штрих-М с передачей информации о маркированных товарах (лекарства).

10.02.2020    3141    0    vovaapril    4    

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

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

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

22.01.2019    7573    0    phsin    18    

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

Администрирование данных 1С v7.7 Бесплатно (free)

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

11.12.2018    5834    0    infosoft-v    9    

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

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

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

10.03.2016    53792    0    Serginio    33    

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

Администрирование данных 1С v7.7 v8 Бесплатно (free)

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

18.05.2016    21161    0    rudjuk    20    

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

Практика программирования v7.7 Бесплатно (free)

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

16.05.2016    10428    0    kudenzov    3    

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

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

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

12.03.2016    18236    0    CheBurator    18    

Кто заблокировал объект ? 7.7 (SQL/DBF) Промо

Администрирование данных 1С v7.7 1cv7.md Бесплатно (free)

Обработка блокировки объекта в базе для SQL/DBF варианта.

13.08.2010    37934    0    Ёпрст    123    

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

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

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

09.03.2016    30262    0    Serginio    22    

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

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

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

16.12.2015    23766    0    Palmer1976    3    

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

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

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

23.11.2015    16764    0    etmarket    14    

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

Администрирование данных 1С v7.7 1cv7.md Бесплатно (free)

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

09.09.2014    34578    0    ksnik    14    

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

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

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

24.09.2015    16553    0    Anzhey    13    

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

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

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

05.07.2015    18431    0    json    1    

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

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

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

20.06.2015    12185    0    gimalaj    3    

Скрипт удобного восстановления базы MSSQL при дифференциальном резервировании Промо

Архивирование (backup) v7.7 v8 1cv8.cf 1cv7.md Россия Бесплатно (free)

Если у Вас база на MSSQL и Вы пользуетесь разностными бекапами, то, скорее всего, столкнулись с тем, что поднять базу/копию базы из имеющихся резервных файлов не столь удобно, как того хотелось бы. В этой статье приведен скрипт по теме.

20.01.2011    29663    0    Ivon    12    

Еще раз, по-новому: производительность 1С: 7.7/1С: 8 + SQL

Производительность и оптимизация (HighLoad) Администрирование данных 1С v7.7 v8 1cv8.cf 1cv7.md Бесплатно (free)

Еще один подход к увеличению производительности 1C+SQL = использование RAM-дисков

16.02.2015    34282    0    kos    35    

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

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

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

16.01.2015    84158    0    shmellevich    38    

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

Журнал регистрации v7.7 1cv7.md Бесплатно (free)

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

11.12.2014    14356    0    VladC#    8    

1С:Предприятие 7.7. Оптимизация. Промо

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

Разгоняем 1С:Предприятие 7.7. Выжимаем последние соки.

31.01.2009    45423    0    alexk-is    110    

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

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

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

24.07.2014    21381    0    tomvlad    5    

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

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

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

15.07.2013    7569    0    a.o.popova    10    

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

Поиск данных Универсальные обработки Работа с интерфейсом v7.7 1cv7.md Бесплатно (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    139405    0    unichkin    10    

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

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

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

18.09.2011    15212    0    dnikolaev    51    

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

Тестирование и исправление v7.7 1cv7.md Бесплатно (free)

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

01.07.2013    77836    0    Вадимко    3    

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

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

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

10.04.2013    14689    0    dime2    16    

Чтение строк файла CSV в список значений с помощью метода ИзСтрокиСРазделителями

Практика программирования Внешние источники данных v7.7 Бесплатно (free)

Чтение строк файла CSV в список значений с помощью метода ИзСтрокиСРазделителями

04.04.2013    18500    0    ivisor_fil    11    

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

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

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

12.01.2012    15046    0    ShEvOvIcH    18    

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

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

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

10.12.2012    24627    0    serg_gres    6    

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

Тестирование и исправление v7.7 1cv7.md Бесплатно (free)

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

19.11.2012    18571    0    msvsoft    9    

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

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

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

26.09.2012    22932    0    taril    8    

Технология обновления нетиповых конфигураций 1С:Предприятия 7.7 Промо

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

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

12.12.2008    61621    0    alexk-is    25    

Немного шаманский запуск 16-битного установщика обновлений конфигурации 1с 7.7 под OS Windows 8

Администрирование данных 1С v7.7 1cv7.md Бесплатно (free)

Как запустить установку конфигурации или обновление конфигурации 1с 7.7 под OS Windows 8.

18.09.2012    49987    0    Vladimir87    32    

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

Архивирование (backup) v7.7 v8 1cv8.cf 1cv7.md Россия Бесплатно (free)

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

10.08.2012    17820    0    sergiobargio1    6    

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

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

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

02.07.2012    15715    0    maxpiter    62    

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

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

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

28.04.2012    17976    0    Valerich    31    

v77. Робот

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

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

09.04.2012    11936    3    item    18    

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

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

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

23.03.2012    10225    0    item    22    

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

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

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

20.03.2012    43041    0    Yury1001    17    

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

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

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

09.03.2012    10518    1    item    17    

v77. Паинт

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

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

06.03.2012    14085    1    item    38    

v77. Как ИспользоватьСубконто

Практика программирования Оборотно-сальдовая ведомость, Анализ счета Оборотно-сальдовая ведомость, Анализ счета v7.7 1cv7.md Россия БУ Бесплатно (free)

Как ИспользоватьСубконто или почему операция - "любимый" инструмент бухгалтера.

05.03.2012    11812    0    item    3    

v77. Календарь на форме.

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

v77. Календарь на форме. В помощь разработчику.

05.03.2012    10667    1    item    17    

v77. Таблица символов.

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

v77. Таблица символов. В помощь разработчику.

05.03.2012    15239    2    item    10    

Автоматическое обновление отчетов/обработок

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

Что ни говорите товарищи, но лень - двигатель прогресса.

17.01.2012    12928    0    ShEvOvIcH    8    

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

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

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

28.10.2011    29400    0    Nicholas    36    

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

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

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

14.09.2011    16931    0    Арчибальд    21    

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

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

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

08.09.2011    11427    0    Sykoku    8