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




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

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

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

<?php // Полная загрузка сервисных книжек, создан 2026-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 не будет опубликован. Обязательные поля помечены *