Подсистема "Контроль изменения данных" (8.1)




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?php // Полная загрузка сервисных книжек, создан 2025-01-05 12:44:55

global $wpdb2;
global $failure;
global $file_hist;

/////  echo '<H2><b>Старт загрузки</b></H2><br>';

$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
/////   echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}

$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
/////   echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}

/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
/////   echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
/////    echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist);   ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7];    ////получаем размер файла
$m_mtime_file=$masiv_data_file[9];   ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file

/////   echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
/////   echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
/////   echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);

if ($results)
{   foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));

////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
/////   echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
/////   echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}

////загружаем данные
$table='vin_history';         // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация     // (путь от корня web-сервера)
$delim=';';          // Разделитель полей в CSV файле
$enclosed='"';      // Кавычки для содержимого полей
$escaped='\

69 Comments

  1. KukA.5

    Штука достаточно простая, в Москве работает в двух местах (с полгода) — полет нормальный, производительность не упала, а польза очевидна… можно детально контролировать важные реквизиты

    Дайте плюсиков 🙂 коллеги…

    Reply
  2. sound

    «производительность не упала», а объемы данных как сильно возросли? И еще 1 из «стандартных»: если в сохраненном документе в табличной части (1000 строк) удалить 1-ю строку, то сколько будет строк в «регистрации»?

    P.S. Не проси плюсики, а то заклюют!

    Reply
  3. sound

    Все таки за попытку и труд поставлю +:)

    Reply
  4. KukA.5

    (2) спасибо, sound, за внимание и критику про строки в табличной части…

    Действительно, будет зафиксировано изменение каждой строки — потому что каждая строка изменилась. А за плюс спасибо.

    Reply
  5. mir-inoy

    а я, пожалуй, поковыряю.

    Reply
  6. den_vladimir

    что-то в этом есть! +1

    Reply
  7. Поручик

    (4)

    >>> Действительно, будет зафиксировано изменение каждой строки — потому что каждая строка изменилась.

    Такая же проблема. http://infostart.ru/blogs/1062/

    Вменяемо-адекватного решения так и не нащупал.

    Reply
  8. Bambrlog

    Уважаемый Кука вы тестировали данную разработку на РИБ?

    Попытался использовать вашу обработку на УТ 10.3.7.8 заметил вот такой глюк. Если поступает новый товар и менеджер узла «А» заносит абсолютно новую номенклатуру и делает выгрузку в узел «Б». В узел «Б» приходят данные подобного вида <«Объект не найден» GUID бла, бла, бла>. Причем замечу подобное происходит только с новой номенклатурой заведенной после внедрения обработки. Номенклатура заведенная ранее перемещается в обоих направлениях «А>Б», «Б>А» нормально.

    Reply
  9. KukA.5

    на РИБ не тестировал — сделайте адаптацию самостоятельно.

    Еще идея — можно сделать в объекте кнопочку (и тоже ее программно добавить). Она открывает журнал регистрации с отбором по GUID. Кнопка получается «История этого объекта»

    Reply
  10. com_a

    Все нормально. Мне понравилось.Делаю отчет об изменение объекта. Ижнбы снятие с проведения учесть.

    Reply
  11. KukA.5

    (12) — удачи, доработайте сами такой функционал (это не сложно).

    Reply
  12. KukA.5

    Коллеги, я в поисках работы — кто то сможет поддержать предложениями работы? Живу в Москве.

    Reply
  13. ZNW

    Отличная конфигурация! Наконец-то решен извечный вопрос «кто это сделал?!» 🙂

    Reply
  14. maxx

    Спасибо за конфигурацию.

    Вот список, того что добавил в эту конфигурацию для себя:

    — отслеживать изменение реквизита ПометкаУдаления

    — отслеживать изменение реквизита Проведен в документах

    — в форму списка справочника «МетаданныеОбъектыДляКонтроля» добавил возможность «Пометить объект и подчиненные» и «Снять флаг с объекта и подчиненных» для групповой установки флага «КонтролироватьИзменения»

    — при открытии формы списка «МетаданныеОбъектыДляКонтроля» отключил , чтобы все флаги снимались и заполнялись по данными регистрами сведениями (не понял, зачем это было сделано, но занимало очень много времени, если все справочники и документы включены)

    — изменил длина «НаименованиеРеквизита» в справочники и регистрах, т.к. в Управление торговленй есть реквизиты справочника УчетныеЗаписи с длино больше 50

    — добавил отслеживание изменений , если удаляют строки табличной части, т.е. строк в итоге становится меньше чем было. Это не отслеживалось

    — добавил еще один регистр сведений «РегистрацияСобытияОЗаписиОбъектов», где регистрирую при каждой записи РежимЗаписи, РежимПроведения, чтобы знать во-первых: кто вообще создал документ (кто автор) ; кто просто записыывал не меняя документ, кто просто перепроводил документы (тоже нет изменений в объекте).

    Ну и напоследок надо будет сделать отчет об истории создания, Изменение, провдения документа

    Reply
  15. Поручик

    Про УПП в курсе, не бойся. Только будет ли версионность в других конфах, вот в чем вопрос.

    Reply
  16. anig99

    и самописные конфы никто не отменял

    Reply
  17. Dragga

    В новых версиях появился инструмент версионирование енто на него похоже?

    Reply
  18. KukA.5

    (16) maxx, спасибо за комментарий.

    Мне было приятно, что это кому то полезно, да еще и развитие получило у коллеги! Вот для таких людей эту работу и выкладывал.

    Доработки толковые, а насчет «при открытии формы справочника МетаданныеОбъектыДляКонтроля принудительное перезаполнение флагов по регистру» — это …я сделал через ж@пу :(, по хорошему вместо справочника (где вся эта хрень еще и хранится) надо использовать произвольную форму для управления наполнением регистра сведений.

    По хорошему эту подсистему вообще надо бы сделать всю по другому и даже мысли есть на эту тему, но это уже другая тема 🙂

    Спасибо за отзывы, комментарии, плюсы….

    Приятно когда твоя работа кому то полезна и помогает в работе твоим коллегам. Это здорово!

    Reply
  19. KukA.5

    После 730 скачиваний версия стала платной — ЭТО ПЛОХО, конечно, но я думаю Инфостарт НУЖНО ПОДДЕРЖАТЬ ФИНАНСОВО.

    Все средства, в полном объеме — на развитие и поддержку проекта.

    Если кому то хочется получить, но нет возможности заплатить, думаю, Дорджи (но же support и просто хороший человек) может (при наличии прямого к нему обращения) и просто прислать эту подсистему бесплатно.

    Reply
  20. KukA.5

    Подсистема снова в свободном скачивании.

    Reply
  21. Traas

    Файл без расширения. Что с ним делать то?

    Reply
  22. KukA.5

    Файл без разширения… какой?

    Основной файл конфигурации имеет расширение «КонтрольИзмененияДанных (версия 1.4).cf»

    Сейчас тестово скачал, проверил — все в порядке.

    Этот файл нужно в 1С-ке, в Конфигураторе через «загрузить конфигурацию», или «сравнить объединить».

    Reply
  23. 1СПрограммер

    Kuka, у меня вопрос ты используешь подписку на событие перед записью справочников, а если отработает исключение и справочник не запишется, как ты с этим боролся?

    Или процедура При записи() которая в модуле формы ругнется на незаполненный реквизит и отменит транзакцию; а ведь процедура в форме выполняется позже процедуры в модуле объекта(я про процедуру При Записи())

    Reply
  24. KukA.5

    (26) Подписка на событие ПередЗаписью выполняется в ОДНОЙ транзакции что и событие ЗАПИСЬ объекта.

    На всякий случай провел дополнительные испытания 🙂 и прилагаю скриншоты иллюстирующие этот факт.

    Если коротко — РЕГИСТРАЦИИ ИЗМЕНЕНИЙ при отмене транзакции записи объекта НЕ БУДЕТ. Подсистема отрабатывает эту ситуацию корректно.

    Reply
  25. 1СПрограммер

    Да, точно, ты прав. У меня просто стояла задача по отражению справочников в двух базах в реальном времени и я в подписке сразу сбрасывал справочник в другую базу; совсем забыл про транзакционность записи, теперь переделал все через регистр. Большое спасибо за наводку 😀

    Reply
  26. 1СПрограммер

    Кuка.5, слушай, а у тебя есть соображения, как избавиться от фиксаций изменений при простом просмотре и нажатии пользователем кнопки «ОК»

    Reply
  27. KukA.5

    (29) Знаешь, ты хотя бы внимательно прочитай описание функционала… (если не можешь его попробовать сам)

    У меня написано:

    4) при записи (по подписке) делается регистрация того что изменилось (из того что надо контролировать)…

    …делается регистрация ТОГО ЧТО ИЗМЕНИЛОСЬ …. — то есть фиксируются ТОЛЬКО ИЗМЕНЕНИЯ

    Поэтому если пользователь нажмет кнопку Ок (или Записать), но ничего не изменилось (потому что он только смотрел) — регистрации изменений не возникнет 🙂

    Пользуйтесь на здоровье 🙂

    Reply
  28. 1СПрограммер

    Ок Спасибо:)

    Reply
  29. KukA.5

    Всегда готов поделиться 🙂

    Не жалко — главное, чтоб это было полезно и нужно кому то….

    Reply
  30. 1СПрограммер

    Кстати в подписку оказывается(для меня) все методы объекта передаются,

    так что можно добавить:

    Если Источник.Модифицированность() Тогда

    более эффективно будет отрабатывать нажатия «ОК»

    Reply
  31. wiranata

    Интересен опыт ведрения данной системы на УРБД на компии тестирую основной БД, на «боевой» пока не рискую ибо там переферийные узлы…

    Reply
  32. Anything

    (34) Я конечно сам не пробовал, но думаю, если отключить миграцию добавленных метаданных, то никаких проблем с РБД быть не должно.

    Reply
  33. wiranata

    Но если отключить миграцию то и не получим данных о «косяках» в РБД, да и по умолчанию они в план обмена не ввойдут, надо принудительно выбирать

    Reply
  34. KukA.5

    Для нормальной работы в РБД я бы порекомендовал с полный обмен включить регистр сведений (где данные о том, ЧТО надо контролировать) и собственно регистр, в котором регистрации изменений. Все будет прекрасно работать 🙂 — прямых ссылок то нет, только GUID-ы.

    Спасибо за внимание к данной разработке. Хотелось бы услышать оценку работы в вашей БД. Если хорошо работает — приятно, если плохо — будет понятно что плохо продумано/реализовано.

    Reply
  35. Anything

    (37) KukA.5, спасибо за эту подсистему! Отлично работает в моей конфигурации уже примерно полгода (один из первых релизов этой подсистемы) и прекрасно справляется со своими функциями.

    Reply
  36. KukA.5

    (38) Релиз был только один. Я его изготовил сто лет назад, когда дома грипповал (чтоб не бездельничать). Внедрил эту штуку в конторе, где тогда работал, что значительно изменило ситуацию в лучшую сторону.

    Подсистема полезна там, где нет четкой системы работы в 1С, и поэтому нужен удобный механизм «слежки» за важными данными.

    Reply
  37. KukA.5

    Сегодня случилось событие 😀 — я стал клиентом на свою собственную подсистему. Скачал с сайта (под рукой не было), воткнул в УПП 1.2.29, все легко встало на удивление меня (разработчика), проверил — все чудненько работает. Завтра будет в боевой базе.

    Reply
  38. axae

    Толково!

    У alexer, в http://infostart.ru/public/63420/ кажется не фиксируются удаления. А здесь — фиксируются. Но есть пожелание (кстати у axeler я пытался написать, нажав [Редактировать], но у меня не получилось — кнопка [Изменить] не сохраняет почему-то изменения комментария): хотелось каким-нибудь простым образом делать поиск по строке <Объект не найден 145:523fg8…>. Из этой строки, знаю, можно получить GUID объекта — сам делал для восстановления удаленных (при своей доработке, кстати, Поиск битых ссылок http://infostart.ru/public/58058/ от naus). Да и при поиске обычного объекта как для него в журнале получить его GUID для отбора?

    Вопрос о журнале регистрации у нас возник именно при поиске виновного в удалении объектов.

    Reply
  39. DiME

    Система класс!!!

    но есть некоторые глюки 🙁

    1. в справочник МетаданныеОбъектыДляКонтроля заносятся не все реквизиты докуметна, точнее добавляются по колличеству все, но некоторые отображаются как пустые строки.

    2. не регистрируются удаления в ТЧ документов хотя объект помечен…

    Косяки конфигурации все отлично работает! 😀

    Reply
  40. Vladimir*

    Доброго дня!

    Установил Вашу систему, нашел несколько нюансов:

    1. ❗ В документе 20 строк. При удалении всех строк начиная к примеру со 2ой, сделается запись, что изменилась строка №2 и все. Система http://infostart.ru/public/63420/ отработала корректно.

    2. 🙁 Сложно читать журнал регистрации, если бы прикрутить что-то типа обработки Alexer (http://infostart.ru/public/63420/)

    ❓ Можете доработать?

    💡 Очень понравилась зато возможность выставлять контроль именно на нужных объектах! Чего нет у Alexer и Удаление объекта фиксируется.

    ❓ и интересно насколько уменьшается производительность 1с из-за внедрения данного учета. Скажем есть документы (кассовые отчеты) которые создаются автоматом и включают в себя несколько тысяч строк, так вот удаление одной строки приведет к какому завису?

    Reply
  41. KukA.5

    (43)

    2) для анализа удобнее пользоваться чем то типа «Универсалный отчет по справочникам, документам, регистрам», который обычно есть во всех конфигурациях.

    ..производительность — проблем не видел. И …зависания то с чего? подсистема делает запись пакета в регистр сведений — это операция, но не такая уж затратная.

    Владимир, спасибо за Ваше внимание к этой моей давней работе и за плюс.

    Reply
  42. Vladimir*

    KukA.5, Вы написали недавно, что снова стали использовать Вашу старую разработку, может сможете ее немного доработать (комментарий 43)? 😉

    Reply
  43. Anything

    Уже на паре проектов использовал эту подсистему.

    Заставили-таки пользователи написать обработку для просмотра истории изменений объекта. 🙂

    Выложил сюда: http://infostart.ru/public/79680/

    (45) Возможно, это то, что Вы хотели.

    Reply
  44. artmicro
    Функция ВернутьТипОбъекта(Объект)
    //
    ТипОбъекта = Строка(ТипЗнч(Объект));
    //
    Если Найти(ТипОбъекта, «Справочник») Тогда
    Возврат «Справочники»;
    ИначеЕсли Найти(ТипОбъекта, «Документ») Тогда
    Возврат «Документы»;
    КонецЕсли;
    //
    Возврат «»;
    КонецФункции // ВернутьТипОбъекта(Объект)

    Показать

    Почему все так делают? 🙂 Вся интернациональность 1С рубиться в генокоде:D

    Reply
  45. artbear

    (47) Ну уж и все 🙂

    Но хорошее замечание, плюсую 🙂

    Reply
  46. CheBurator

    как-то не нравиться мне этот код.. в 8-ке я нуль, но вроде там можно сравнить типобъекта непосредственно со специальным типом данных «тип»…? или что-то похожее..

    Reply
  47. artmicro

    (49)

    В 8-ке есть несколько способов определить тип не обращаясь к сравнению со строковым значением. Например: Метаданные.Документы.Содержит(Док). А то при разных языках платформы представление будет разным. Если ru — будет «Справочники», «Документы», если ua будет «Довідники», «Документи» … Но такого кода и в типовых конфах навалом 🙂

    Reply
  48. KukA.5

    (50) с критикой согласен, сделать подсистему можно лучше.

    Reply
  49. Арамзамзам

    Тру разработка, я тут пофлужу, ибо нада файл скачать, а новые правила всё такое…сами понимаете, но на самом деле, качал давно, палён нормальный, плюс поставил сразу после тестов, адаптировал под себя, немного модернизировал.

    Reply
  50. softest

    Скажите кто пользовался на сколько роздуваетса база?

    Reply
  51. angtar

    скачал файлы, но не могу понять, как подключить систему к конфигурации?

    какие файлы должны быть в комплекте?

    для 8.2 есть что-либо подобное?

    Reply
  52. Поручик

    (54) Вам к специалисту. Самостоятельно не справиться. Для 8.2. требуется конвертация cf

    Reply
  53. angtar

    я сам себе специалист, разобрался уже и подключил к 8.2

    просто файл битым скачался

    Reply
  54. AlekseiLeit

    Спасибо автору. Пригодилось. Немного подточил под себя и пошло на ура 🙂

    А главное скачалось за так )

    Reply
  55. tornado_storm

    А на какой платформе сохранена данная подсистема? У меня при сравнении и объединении или загрузке конфы ругается на несоответствие версий!!!!

    Reply
  56. 4ur

    спасибо, как раз поступил заказ на такую доработку, т.к. очень нужен дополнительный контроль

    Reply
  57. Harry_Joplin

    (56) А можешь подсказать как? Тоже хочу на 8.2 поставить, делаю объединение конфигураций, мне тут же выдает морду как у 8.1 и не дает зайти ни в один документ.

    С мордой 8.1 решил вопрос, надо было галку со «Свойства» снять

    После объединения конфигураций, могу выбрать только интерфейс «Контроль за изменениями» и ни на какой другой уже поменять не могу, подскажите как быть?

    Reply
  58. Raminus

    Надо будет глянуть и оценить! 🙂 Ставлю плюсик авансом, что бы не забыть 🙂

    Reply
  59. inshair

    Понравилась конфигурация, быстро смог внедрить. Автору спасибо. Глюков пока не замечено. Да и код очень просто и понятный, начал до этого момента свою конфигурацию править, а тут попалась эта и не стал уже велосипеды изобретать:)

    Reply
  60. AlexanderKai

    А средствами SQL это можно сделать? Никто не заморачивался?

    Reply
  61. -fox-

    Есть мелкие пожелания, но это для индивидуальной доработки. А как быстрое и простого решения очень подходит, Автору +.

    Reply
  62. VZhulanov

    Скачал, установил, добавил сразу же кучу галочек в дереве метаданных чтобы следить за изменениями всех важных объектов.

    А вот примерный объем данных не подсчитал.

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

    Начал искать ошибку — таблица регистра сведений заполнена на 99.99% (Tool_1CD.exe показал). Убрал все галочки контроля — система заработала. Теперь буду сидеть и считать кол-во данных, чтобы знать куда ставить галку, а куда нет.

    Вижу 2 варианта доработки системы контроля:

    1. по каждому объекту метаданных показывать количество объектов в системе. Там где это возможно (документы и регистры с датой) показывать среднее кол-во новых объектов за месяц. Эта информация поможет определить стоит или нет ставить контроль за этим объектом.

    2. хранить данные контроля во внешней БД, но тут возникают проблемы с синхронизацией в распределенных базах.

    Кто еще чего предложит?

    Reply
  63. Лануси4ка

    Спасибо огромное автору за данную разработку, как раз недавно собралась сама похожее писать, но наткнулась на вашу, скачала, поставила, проверила — очень понравилась. Есть правда некоторые недочеты, которые попытаюсь сама переделать:

    1) при удалении строки было бы приятней увидеть что данная строка со всеми реквизитами была удалена, а не затерлась следующей

    2) неудобно при отметке контроля по всем элементам по отдельности ставить галки, а если нужен контроль всего документа сразу? почему нельзя ставить галку чисто у документа всего, или чисто у его табличной части? приходится выбирать каждый реквизит документа/табличной части и ставить галки(

    Reply
  64. tamidi

    Спасибо автору за разработку. Проще переделать под себя готовое решение, чем писать все с нуля.

    Reply
  65. KukA.5

    Коллеги, спасибо за Ваши отзывы! Очень приятно!

    Особенно с учетом, что уже почти 3 года как не программирую…

    И на Инфостарт не заходил полгода (( — исправляюсь ))

    Работаю сейчас как руководитель направления 1С:Документооборот в одной фирме ))

    Так что, если смогу кому-то быть полезен в этой тематике, обращайтесь!

    https://www.facebook.com/andrey.kukanov — моя страничка в фейсбуке

    Во вложении моя сегодняшняя презентация про 1С:Документооборот к вебинару.

    Она про возможности программы (обзорно и по-сути назначения программы).

    Reply
  66. KukA.5

    (66) VZhulanov, «…таблица регистра сведений заполнена на 99.99%…» — прикольно и немного странно! Неужели таблицы в БД «конечны» )). Может быть это ограничение возникло, потому что база в файловом варианте?

    Reply
  67. iZhenius

    Спасибо! Разработка пригодилась и нам в Беларуси!)

    Reply
  68. Namig

    Есть ли у кого версия для 8.0.18.2?

    Reply
  69. igor.kryuk

    Спасибо автору! И вопрос. Реализовал ли кто проверку удаления строки табличной части документа?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *