Отладка обработок заполнения или создания связанных объектов для конфигураций 1С: Предприятия 8.2/8.3 на БСП (Управляемое приложение). Версия 1.2.8




Принцип обмена данными из 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='\

83 Comments

  1. Yury1001

    А в чём отладка то заключается? На точку останова не реагирует.

    Reply ↓
  2. Поручик

    (1) Закрой базу, открой конфигуратор. Там какой-то глюк платформенный, у меня тоже иногда не останавливается. И проверь, запускается ли у тебя 1С Предприятия в режиме отладки из конфигуратора.

    Reply ↓
  3. Yury1001

    (2) Да нет всё нормально, если где то в общем модуле ошибка можно остановиться посмотреть, а текст самой обработки не отлаживается.

    Reply ↓
  4. Поручик

    (3) Тогда не знаю, сам разбирайся, как хочешь. Это обработку http://infostart.ru/public/141777/ я с помощью неё отлаживал.

    Reply ↓
  5. alexandr1972_1

    (3) Очистите кэш базы, и попробуйте запустите базу под админской учёткой пользователя операционной системы. Там действительно глюк или фича платформы, потому что обработка котороую отлаживаете помещается во временное хранилище. Наверное с этим связано.

    Reply ↓
  6. Поручик

    (5)(3) Под ограниченной системной учёткой отладка тоже происходит.

    Reply ↓
  7. Поручик

    Обработка адаптирована для Библиотеки стандартных подсистем последних релизов

    Reply ↓
  8. МимохожийОднако

    Недавно столкнулся с отладкой кода внешней обработки печати в УТ11. Подобной обработки под рукой не было. Что я сделал:

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

    2. Загрузил эту обработку через Администрирование обработок. Запустил. Получил ошибку.

    3. Вошел по ссылка в режиме Конфигуратор и увидел название временного файла во временном каталоге пользователя.

    4. Поставил в этом месте точку останова и вновь запустил обработку.

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

    6. Дальше всё просто…Скопировал из временной обработки то, что нужно в рабочую обработку и скорректировал код.

    При этом есть возможность открыть обработку из конфигуратора во временной папке с ней работать.

    При повторных запусках платформа продолжает работать с этим временным файлом.

    …

    Моё сообщение как еще один вариант отладки.

    Reply ↓
  9. fuser

    Ошибка при вызове серверного метода.

    Вы запускаете обработку вызовом:

    ВнешняяОбработка.ВыполнитьКоманду(ИдентификаторКомандыОбработки, ОбъектыНазначения);
    

    Но если посмотреть общий модуль БСП ДополнительныеОтчетыИОбработки.ВыполнитьОбработкуНепосредственно, то увидите в ней проверку: Если структура сведений о внешней обработке содержит параметр «ВерсияБСП», то все вызовы дополняются еще 1 параметром ПараметрыВыполненияКоманды:

    Если ТипОбработки = Перечисления.ВидыДополнительныхОтчетовИОбработок.ДополнительнаяОбработка
    ИЛИ ТипОбработки = Перечисления.ВидыДополнительныхОтчетовИОбработок.ДополнительныйОтчет Тогда
    
    Если ПередаватьПараметрыВыполненияКоманды Тогда
    ВнешняяОбработка.ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполненияКоманды);
    Иначе
    ВнешняяОбработка.ВыполнитьКоманду(ИдентификаторКоманды);
    КонецЕсли;
    
    ИначеЕсли ТипОбработки = Перечисления.ВидыДополнительныхОтчетовИОбработок.СозданиеСвязанныхОбъектов Тогда
    
    СозданныеОбъекты = Новый Массив;
    
    Если ПередаватьПараметрыВыполненияКоманды Тогда
    ВнешняяОбработка.ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, СозданныеОбъекты, ПараметрыВыполненияКоманды);
    Иначе
    ВнешняяОбработка.ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, СозданныеОбъекты);
    КонецЕсли;
    

    Показать

    Рекомендую добавить аналогичный код в вашей обработке

    Reply ↓
  10. Поручик

    (9) Завтра учту.

    Reply ↓
  11. Поручик

    Добавлен учет версии БСП и параметр выполнения команды.

    Reply ↓
  12. Поручик

    Обновление. Текущая версия 1.1.0

    [+] обработка адаптирована для использования с релизами БСП линии 2.1.3

    Reply ↓
  13. Поручик

    Обновление. Текущая версия 1.1.1

    [+] обработка адаптирована для использования в клиент-серверных базах.

    Reply ↓
  14. Поручик

    Вернул всё назад.

    Для отладки в клиент-серверном варианте следует использовать папку, доступную для учетной записи пользователя сервера 1С:Предприятия.

    Reply ↓
  15. Поручик

    Обновления нет. Отредактировано описание.

    Reply ↓
  16. citana

    очень помогла обработочка)) спасибо большое))

    Reply ↓
  17. Поручик

    Исправлена незамеченная ошибка. Тоже никто не сообщил. Всем …, как всегда, всё равно.

    Reply ↓
  18. worker1c

    (17)

    Спасибо, так гораздо лучше!

    Reply ↓
  19. Alister

    Большое спасибо автору за обработку, только начинаю УФ делать и без нее с отладкой беда.

    Reply ↓
  20. XiPyPg

    Здраствуйте подскажите что делаю не так….скачал вашу обработку по отладке внешних обработок на заполнения. открываю 1с конф + режим отладки, там через открыть открываю вашу обработку, в ней выбираю свою, команду и документ выполняю а он не заходит в точки останова хотя результат по ним выводит. комнаду выполняю на клиенте, да и вобще 1с-ка целиком открыта на сервере

    Reply ↓
  21. Поручик

    (20) Не знаю, что вы там делаете. 500 рублей и займусь вашей проблемой.

    Reply ↓
  22. Brawler

    берем обработку из ДЕМО БСП

    _ДемоДополнительнаяОбработкаСозданияСвязанныхОбъектовНазнача­емая.epf

    меняем в ней Справочник._ДемоКонтрагенты на Справочник.Контрагенты

    запускаем

    выбираем команду «Создать копию и заполнить наименование (открытие формы)…»

    выбираем любой элемент справочника

    выполняем

    ловим ошибку

    {Форма.Форма.Форма(15)}: Поле объекта не обнаружено (ИмяФормы)

    ИмяФормыВладельца = Параметры.ИмяФормы;

    не робит обработка даже с примерами из БСП

    Reply ↓
  23. Brawler

    (23) не понимаю чего ноешь ты.

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

    Reply ↓
  24. Поручик

    (24) У тебя не спросил.

    Reply ↓
  25. Поручик

    Обновление. Текущая версия 1.1.4

    [+] исправление некоторых ошибок при работе с БСП 2.1.3 и выше

    Reply ↓
  26. Вальская Людмила

    Как «проголосовать за», в новом оформлении не нашла, говорю «Спасибо» так.

    Reply ↓
  27. Alex

    Не работает. Не останавливается в точке останова…

    Reply ↓
  28. Поручик

    (29) Печально. Вкурись в описание, может дойдёт. Если не получится, выбрось её.

    Reply ↓
  29. Alex

    Вот по тому ты и поручик.. не быть тебе генералом 🙂

    Reply ↓
  30. Mx00

    пробую заполнять табличную часть, строго по инструкции не получилось 🙂

    думаю нужно добавить пункт перед «выполнить» — открыть форму документа на котором тестируем обработку

    +++

    Разобрался, это у меня обработка такая досталась, которая определяет обрабатываемый документ через открытые окна и если такого окна нет, то и обрабатывать ей нечего…

    Reply ↓
  31. Mx00

    А на точке останова не останавливается никак 🙁

    тестирую вот эту обработку http://infostart.ru/public/238394/

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

    Reply ↓
  32. Поручик

    (33) С той обработкой только за деньги займусь.

    Reply ↓
  33. Mx00

    (34) если деньги разумные, то можем обсудить

    на самом деле точка останова не срабатывает ещё безо всяких заморочек той формы, т.е. при открытии формы тоже не срабатывает

    работаю в БП 3.0 на платформе 8.3.4.389

    Reply ↓
  34. Поручик

    (35) Прежде чем обсуждать финансовый вопрос, почитать очень внимательно описание тоже не помогло?

    Reply ↓
  35. unichkin

    Класс =) Спасибо)

    Reply ↓
  36. qwinter

    Не останавливается при отладке, хоть что делай. Тестировал на стандартной БСПшной обработке _ДемоДополнительнаяОбработкаЗаполненияНазначаемая.

    P.S. Протестировал еще одну свою, остановился…

    Reply ↓
  37. qwinter

    Почему то отладка работает только если установить в «ПараметрыРегистрации» внешней обработки БезопасныйРежим = Истина.

    Reply ↓
  38. Поручик

    (47) Ну я как-то не задумывался. Нет у меня таких обработок.

    Reply ↓
  39. Поручик

    Обновление. Текущая версия 1.1.8

    [+] добавлена отладка обработок с методом «Заполнение формы» («ЗаполнениеФормы») без записи объекта.

    Reply ↓
  40. biz-intel

    В вашей обработке проблемы с модальностью. Планируете рефакторинг?

    Reply ↓
  41. Поручик

    (50) Если не лень будет.

    Reply ↓
  42. МимохожийОднако

    (22) Brawler, вероятно забыл обновить справочник идентификаторов объектов конфигурации.

    Reply ↓
  43. ll13

    Я использую другой подход к отладке внешних обработок БСП…

    http://www.obrabotki.com/otladka-bsp-1s/

    Reply ↓
  44. ZhokhovM

    Поручик, добрый день. Есть вопрос, почему нельзя подключиться ни к одной из ваших обработок с методом ДополнительныйОтчет или ДополнительнаяОбработка? Как их отладить?

    Reply ↓
  45. ZhokhovM

    Подписка.

    Reply ↓
  46. Поручик

    (54) (146) Обычно, в конфигураторе отладчиком.

    Reply ↓
  47. ogre2007

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

    Файловый режим.

    Платформа: 8.3.6.1977

    Конфа: ут 11.1.9.66

    Reply ↓
  48. Cyberhawk

    Не работает (отладчик в точках останова не останавливается) на УНФ 1.5 и обработке заполнения объекта, подключаемой не в безопасном режиме.

    Reply ↓
  49. MaxS

    БП 3.0.41.57

    Платформа 8.3.6.2299

    Версия обработки 1.2.0

    {(1)}: Метод объекта не обнаружен (НовыйРезультатВыполнения)

    СтандартныеПодсистемыКлиентСервер.НовыйРезультатВыполнения()

    Reply ↓
  50. Поручик

    (59) Залил новый файл. Попробуй.

    Reply ↓
  51. TMV

    (58) Cyberhawk, см. (47)

    Reply ↓
  52. kaisar

    (59) MaxS,

    Reply ↓
  53. qwinter

    Здравствуйте. А модальностью так и не занимались?

    Reply ↓
  54. Поручик

    (63) Не помню. Что-то сделал.

    Reply ↓
  55. RodinMax

    Полезная обработка

    Reply ↓
  56. baracuda

    Отличная обработка! Выручила. Лайк поручику!

    Reply ↓
  57. HEKPOH

    Спасибо за обработку! Использую в работе

    Reply ↓
  58. Brawler

    И снова 1С подосрало…

    В ЗУП 3.1 с БСП 2.3.3

    такая бяка вылезла

    {(1)}: Метод объекта не обнаружен (НовыйРезультатВыполнения)

    СтандартныеПодсистемыКлиентСервер.НовыйРезультатВыполнения()

    Тонны обработок по всей стране придется людям переделывать…

    Reply ↓
  59. Поручик

    (70) Если вы про мою обработку, то исправлено ещё в сентябре прошлого года.

     Если СравнитьВерсии(ВерсияБСП, «2.1.6») >= 0 Тогда
    Попытка
    НовыйРезультатВыполнения = Вычислить(«СтандартныеПодсистемыКлиентСервер.ОписаниеРезультатаВыполнения()»);
    Исключение
    НовыйРезультатВыполнения = Вычислить(«СтандартныеПодсистемыКлиентСервер.НовыйРезультатВыполнения()»);
    КонецПопытки;
    ПараметрыВыполненияКоманды.Вставить(«РезультатВыполнения», НовыйРезультатВыполнения);
    КонецЕсли; 
    Reply ↓
  60. wbazil

    хорошая обработка, в отладку попадает, спасибо

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

    Reply ↓
  61. dkonakov

    в БП 3.0.44 похоже надо переписывать, СтандартныеПодсистемыКлиентСервер.НовыйРезультатВыполнения() — эта функция всё.

    Reply ↓
  62. Поручик

    (73) ты файл где скачал?

    Reply ↓
  63. dkonakov

    (74) Вижу, что уже исправлено. Спасибо!

    Reply ↓
  64. veyron21

    Не работает((( Уже озвученная выше проблема появляется:

    {(1)}: Метод объекта не обнаружен (НовыйРезультатВыполнения)

    СтандартныеПодсистемыКлиентСервер.НовыйРезультатВыполнения()

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

    Версия БСП 2.3.3.77

    Версия обработки 2.1.5. скачивал отсюда 24.10.2016

    Reply ↓
  65. Поручик

    (76) Исправил. Там надо было в двух местах, а я второе пропустил.

    Reply ↓
  66. Ryzhak

    {(1)}: Метод объекта не обнаружен (НазначаемыеОбъектыМетаданныхПоВидуВнешнегоОбъекта)

    ДополнительныеОтчетыИОбработки

    .НазначаемыеОбъектыМетаданныхПоВидуВнешнегоОбъекта(ВидОбработки)

    ЗУП 3.1.2.183

    Reply ↓
  67. Поручик

    (78) Будет время, исправлю. Вы бы ещё версию БСП в ЗУПе 3.1.2 сказали, чтобы мне не шарить по юзерсу лишний раз.

    Reply ↓
  68. Поручик

    (78)

    Не знаю, что там в ЗУПе, но в БП 3.0 последних релизов версия БСП 2.3.5., то есть за полгода почти ничего не поменялось в подсистеме дополнительных обработок.

    Reply ↓
  69. alexhline

    тоже не работает в БП 3.0.44.204

    {(1)}: Метод объекта не обнаружен (НазначаемыеОбъектыМетаданныхПоВидуВнешнегоОбъекта)

    ДополнительныеОтчетыИОбработки.НазначаемыеОбъектыМетаданныхПоВидуВнешнегоОбъекта(ВидОбработки)

    Reply ↓
  70. Поручик

    Удивительно. Проверю на неделе.

    Reply ↓
  71. AnDrU89

    (81) А посидеть, ошибку поискать, не пробовали? Поправил немного код и все работает на ура, автору спасибо

    Reply ↓
  72. EvgeniyNP

    А будет она работать в БГУ 2.0.54.31 с БСП 2.4.5.80?

    Reply ↓
  73. Поручик

    (84) Не знаю. Я же не многостаночник.

    Reply ↓
  74. EvgeniyNP

    (85)Тогда по другому, с такой версией БСП будет работать?

    Reply ↓
  75. Поручик

    (86) По-крайней мере с той, которая была на 20.06.17. Я ею нечасто пользуюсь

    Reply ↓
  76. EvgeniyNP

    (87) Ясно, спасибо

    Reply ↓
  77. Поручик

    (88) Вроде работает.

    Бухгалтерия государственного учреждения, редакция 2.0 (2.0.54.32)

    По крайней мере, при открытии ошибок не выдаёт. Я пользовался СозданиеСвязанныхДокументовУниверсальнаяУФ.epf

    Reply ↓
  78. EvgeniyNP

    (89) у меня при отладке ругается

    {ВнешняяОбработка.ЗаполнениеТаблицыРаспределенияНДС.Форма.Форма.Форма(27)}: Значение не является значением объектного типа (Объект)

    ВладелецФормыОбъект = ВладелецФормы.Объект;

    это какой-то нюанс обработки проверки?

    Reply ↓
  79. dklp

    (90) аналогичная проблема.

    тестирую внешнюю обработку вида ЗаполнениеОбъекта с типом команды ВызовКлиентскогоМетода, обработчик команды размещен в модуле формы внешней обработки:

    &НаКлиенте
    Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
    

    при попытке отладить внешнюю обработку выдает ошибку:

    «{ВнешняяОбработка.ЗаказКлиентаРазбить.Форма.Форма.Форма(25)}: Значение не является значением объектного типа (Объект) ДанныеФормы = ВладелецФормы.Объект; »



    в общем, предложенная автором обработка для отладки внешних обработок не может вычислить выражение «ВладелецФормы»

    1С:Предприятие 8.3 (8.3.12.1529)

    Управление торговлей, редакция 11 (11.4.5.71)

    Reply ↓
  80. Поручик

    Значит, что-то поменялось в БСП.

    Reply ↓
  81. Поручик

    (91) Посмотрите в отладчике, какой-тип у ВладелецФормы. У меня нет релизов УТ 11.4.

    Reply ↓
  82. dklp

    (91), (92), (93)

    обработка для отладки внешних обработок не может вычислить выражение «ВладелецФормы»

    В общем, я нашел способ как через вашу обработку отладки достучаться к владельцу формы моей тестируемой обработки (то есть к форме документа, к которому привязана обработка заполнения, в моем случае — к документу ЗаказКлиента).

    Вместо выражения «ВладелецФормы» в коде модуля формы своей обработки временно использую такую конструкцию:

    &НаКлиенте
    Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
    Элемент = ОбъектыНазначенияМассив[0];
    КлючПоиска = Новый Структура(«Ключ», Элемент);
    ВладелецФормы_ДляОтладки = ПолучитьФорму(«Документ.ЗаказКлиента.Форма.ФормаДокумента»,КлючПоиска,,,,);
    …
    КонецПроцедуры

    При этом документ, на котором тестируется обработка заполнения (в моем случае — заказа клиента), лучше открыть, чтобы видеть текущие изменения с ним в процессе отладки.

    После завершения отладки можно в код внешней обработки заполнения документа снова вернуть выражение ВладелецФормы для обращения к форме документа из внешней обработки.

    Как-то так.

    Reply ↓
  83. UmBu

    Если сделать поправки dklp (94) отладка работает.

    Reply ↓

Leave a Comment

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