Печать внешних форм документов для 7.7




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

94 Comments

  1. Доня

    Посмотрела в комплексной — понравилось!

    Но в ней не работаю

    Работаю в Бухе.

    Попыталать переделать под Буха, не вышло.

    Может под Буха выложите, или подскажите как сделать

    Reply ↓
  2. ui69

    Как раз такую искал недавно — спасибо!

    В ТиС все работает нормально.

    Reply ↓
  3. Арчибальд

    У тебя клава с турецким акцентом 😉 (с) О.Бендер

    ЭкзЭмпляров 🙂

    (1) Там всего-то переделки — подменить глФильтрПоПеременнойЗапроса и выбросить общие реквизиты Проект и Автор. Текст внятно структурирован, попробуйте еще 🙂

    Reply ↓
  4. Ёпрст

    (1) поправил. пробуй.

    Reply ↓
  5. Арчибальд

    (4) ЁПРСТ БЫСТРОДЕЙСТВУЮЩИЙ. Обитает на ИС и в окрестностях… 😀

    Reply ↓
  6. Доня

    В Бухе работает нормально

    Спасибо

    Reply ↓
  7. _also

    Ёпрст, спасибо классная штука.

    Reply ↓
  8. _also

    +(7) Ты мне в свое время тока для ТиСа дал. Я ее еще под свой Общепит переделанный допилил 🙂

    Reply ↓
  9. CheBurator

    автор — схалявил! 😉 нет чтобы списочек принтеров еще подцепить… и чтоб можно было указывать — для каждой печформы — это туда, это сюда — готовый автомат!

    Reply ↓
  10. CheBurator

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

    Reply ↓
  11. CheBurator

    ну и если Устройство = 3 — отправить на мыло….

    Reply ↓
  12. Ёпрст

    (9) ну ё.. код открыт, там делов то — добавить колонку в тз и сделать выбор принтёра..

    Хотя, баловство…

    Подобная поделка нужна в основном бухам, для печати комплекта доков..и печатают они, как правило, на один принтёр…

    Reply ↓
  13. Ёпрст

    (11) ну и мыло прикрутить… пару сек..

    Reply ↓
  14. Khelen-z

    Не работает…

    {D:ЮЛЯEXTFORMSPRINTEXTFORMS.ERT(991)}: Переменная не определена (глКаталогПечФорм)

    Если ФС.СуществуетФайл(глКаталогПечФорм <<?>>+ Файл) = 1 Тогда

    {D:ЮЛЯEXTFORMSPRINTEXTFORMS.ERT(993)}: Переменная не определена (глКаталогПечФорм)

    Если глНайтиВнешнююПечФорму<<?>>(Текст, «»»» + ВидОбъекта + «»»», Название, Кнопка) = 1 Тогда

    {D:ЮЛЯEXTFORMSPRINTEXTFORMS.ERT(994)}: Функция не обнаружена (глНайтиВнешнююПечФорму)

    Файл=глКаталогПечФорм<<?>>+ТзПечФ.Файл;

    {D:ЮЛЯEXTFORMSPRINTEXTFORMS.ERT(1209)}: Переменная не определена (глКаталогПечФорм)

    Стр = глКаталогПечФорм<<?>>+СокрЛП(ТЗ.Файл);

    {D:ЮЛЯEXTFORMSPRINTEXTFORMS.ERT(1248)}: Переменная не определена (глКаталогПечФорм)

    Reply ↓
  15. Ёпрст

    (14) Конфа то какая хоть?.

    Reply ↓
  16. Свой

    Ёпрст — синоним качества. Спасибо.

    Reply ↓
  17. JohnyDeath

    (15) не видишь что ль — «ЮЛЯ» 😀

    Reply ↓
  18. Khelen-z

    Бухгалтерский учет для украины

    Reply ↓
  19. Ёпрст

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

    Так что… работать не будет ничего.

    Reply ↓
  20. ineoosaki

    Все хвалят, а я немного покритикую. Спущу немного автора на грешную землю 😉

    Итак.

    1. Если выбраны документы в которых нет реквизита Контрагент, то запрос вываливается с ошибкой.

    Как поправить, можно посмотреть вот здесь:

    http://infostart.ru/public/14160/

    2. МФ сохраняется-востанавливается криво. Как поправить — читаем здесь:

    http://infostart.ru/public/16940/

    (Это типа пиар :))

    3. Кнопка «НоменклатураИзДокумента» в диалоге МФ зачем, если она ничего не делает?

    Почему не видно, что МФ задан?

    4.Ввод периода отображается только на закладке «Документы», что имхо не очень информативно.

    Я бы поместил его в слой «Кнопки».

    При открытии отчета — не задаютя даты начала и окончания — это издевательство над пользователями.

    Еще — в типовых конфигурациях с «ДатаКонца» принято снимать флаг сохранения настройки, ее обычно заполняют рабочей датой или датой ТА.

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

    5. Имхо если ТЗ с отобранными документами масштабировать, то у пользователя присутствовало бы ощущение, что он работает с полноценным журналом документов.

    Чтобы не использовать формекс, я бы поставил слой «Документы» первым в списке, а ТЗ «ТабДок» назначил бы первой в обходе.

    Границы ТЗ (правую и нижнюю) нада вынести за границы остальных реквизитов формы, чтобы последние не «поплыли».

    Здесь прийдется весь «подвал» слоя «Документы» перенести в «шапку». Ну и другие слои чуток поправить.

    Напоследок установить флаг формы «Изменять размер».

    6. В диалоге «Скока печатать» желательно по умолчанию ставить единичку.

    7. Для идентификации типовой конфы есть спец. функция глИдентификаторКонфигурации(),

    обычно ее не изменяют, а вот над идентификатором конфигурации издеваются часто.

    На последок простенькая задачка: как написать текст запроса, что бы в выборку попали помеченные на удаление и проведенные документы, и не попали текущие (т.е. непомеченные/непроведенные).

    Reply ↓
  21. Ёпрст

    (21) Этой поделке лет 6… И.. дорабатывать её мне лень..

    По -поводу МФ, всё гораздо проще чем в твоём блоге делается.

    Reply ↓
  22. Ёпрст

    +22 Кнопка номенклатура из документа — осталась из рабочей конфы..

    По-поводу клиентосов не во всех документах — данная поделка давно переделана на прямые запросы + ТП и т.д..

    Там свой фильтр.

    А это — старый вариант, из которого

    Reply ↓
  23. ineoosaki

    (22)

    >> По -поводу МФ, всё гораздо проще чем в твоём блоге делается.

    хотелось бы узнать, как сделать проще?

    а то это голословное заявление.

    Reply ↓
  24. Ёпрст

    (24) Ничего не пишем в ВВодНового, оставляем всё штатно + галка автоматическое сохранение в настройке отчета. Всё.

    Reply ↓
  25. Ёпрст

    Да, по воводу

    На последок простенькая задачка: как написать текст запроса, что бы в выборку попали помеченные на удаление и проведенные документы, и не попали текущие (т.е. непомеченные/непроведенные).

    Дык там же ЭТО всё есть.. как в прочем и в любой штатной обработки документов с ИТС … 2 переключателя Включать проведенные и Включать помеченные на удаления…

    Ставим Все и не помеченные на удаление и привет..

    Reply ↓
  26. Ёпрст

    +26 А ёпт.. невнимательно прочитал:

    Ну так тогда:

    |ОбрабатыватьДокументы Все;
    |Условие(Док.Проведен()+Док.ПометкаУдаления()=1);
    Reply ↓
  27. ineoosaki

    (26)

    В твоей обработке этого как раз нет.

    В типовой ТиС используется не запрос, а перебор документов ВыбратьДокументы() поэтому выбрать одномоментно проведенные и помеченные на удаление можно уже в выборке отсекая «текущие» («текущие» — это в терминах типовой ТиС непроведеннные и одновременно не помеченные на удаление, см. ПечатьРеестра, ГрупповаяОбработкаДокументов).

    К сожалению нет под рукой обработок с ИТС, но там вроде тоже используется перебор документов, а не запрос.

    Reply ↓
  28. ineoosaki

    (27)

    правильно 😀

    Reply ↓
  29. ineoosaki

    (25)

    потестирую на досуге…

    Reply ↓
  30. Ёпрст

    (28) Конечно нет.. Нафига мне вообще печатать помеченные на удаление ? 🙂

    А код кстати, с типовых обработок.. почти весь, окромя самой печати.

    Reply ↓
  31. ГАВ

    Мне ужасно нравится для ТИСы… Только очень не хватает МФ по фирме… Или может я не вижу как его применить?

    Reply ↓
  32. Ёпрст

    (32) вообще она там есть.. для тиСа

    Reply ↓
  33. ineoosaki

    (25) потестировал

    Корректно сохраняется/восстанавливается только ОДНА настройка.

    Так что утверждение твое голословно.

    Reply ↓
  34. Ёпрст

    (34) Гы.. аналогично могу утверждать, что правкой ВВодНового это тоже не решается.

    Reply ↓
  35. lemaxs

    А не подскажите где можно взять внешние печатные формы АО и др.?

    Reply ↓
  36. Ёпрст

    (36) АО — Это что ?

    И для какой конфы ?

    Reply ↓
  37. Арчибальд

    (37) Это АО-1 на самом деле. Авансовый отчет.

    (36) http://www.infostart.ru/public/72343/

    Reply ↓
  38. Ёпрст

    (38) я уже кинул ему вн. печ форму в личку..

    Reply ↓
  39. Арчибальд

    (39) Думаешь, поможет?

    Reply ↓
  40. Ёпрст

    (40) почему бы и нет..

    распечатает и всё тут..

    Reply ↓
  41. lemaxs

    Ура ))

    Reply ↓
  42. mezonik

    Очень полезная штука, спасибо

    Reply ↓
  43. max969

    Очень полезная прога, работает как часы.Спасибо)))

    Reply ↓
  44. nickkey

    Спасибо автору хорошая разработка и идея и реализация работает хорошо но все же можно было функционалу добавить до полного счастья типа выбор печати документов всех за период по контрагенту там например расходники если был возврат автоматом приходник к этому документу ну это так мысли в слух :)) все равно спасибо успехов в нашем нелегком деле !!!

    Reply ↓
  45. ssst

    Спасибки, поработаем-посмотрим)))

    Reply ↓
  46. anna01

    Спасибо! Будем пробовать, надеюсь, понравится )))

    Reply ↓
  47. iotkin

    Спасибо автору. Очень пригодилась — как раз искал что-то подобное. Немного доделал — и теперь доволен 🙂

    Reply ↓
  48. 6630

    Работает, протестировал

    Reply ↓
  49. jenkins

    Спасибо, попробую печатную форму дока еще туда запихать, тогда идеально будет.

    Reply ↓
  50. notepad

    Как сделать, чтобы печатала формы ландшафт?

    Reply ↓
  51. mixerden

    спасибо!

    Reply ↓
  52. superket_12

    Обработка отличная,счета-фактуры печатаются как надо,С ГТД.Но для ТОРГ-12 стоит только не унифицированная форма.Я зарегила внешнюю печатную форму ТОРГ-12,но она в этой обработке не появляется….Что я делаю не так…?

    Reply ↓
  53. Ёпрст

    (72) нажми на обновить (кнопка такая там есть)

    Или (не помню я ужо, делал в этой поделки или нет ? )

    удали сохраненный настройки очета и заново открой — должно всё появится.

    Reply ↓
  54. CheBurator

    При первом запуске на бухбазе выдало

    Если ТаблицаДокументов.НайтиЗначение(ВыбранныеДокументы.ПолучитьЗначение(Стр),ид,»ВидДокумента»)=1 Тогда

    {…EXTFORMSPRINTEXTFORMS.ERT(1026)}: Индекс не входит в границы списка значений.

    Reply ↓
  55. Ёпрст

    (74) всё может быть.

    Reply ↓
  56. Tatar_Ed

    Спасибо автору.

    У меня вопрос.можно ли реализовать возможность выбора направления сратницы (портрет или ланшафт) для разных документов. Например напечатать сч.фак. все горизонтально, а нак. вертикально?

    Reply ↓
  57. Ёпрст

    (76) как 2 байта, надо ?

    Достаточно вынести флаг или радиобутон на форму поделки, что это ландшафт или портрет +

    передать в параметры + в печатных формах получить этот параметр и ежели он есть, воткнуть его в ПараметрыСтраницы.

    Reply ↓
  58. Ёпрст

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

    Reply ↓
  59. Ёпрст

    Т.е каждая форма будет печататься на свой принтёр..

    Reply ↓
  60. Tatar_Ed

    (77) т.е. для каждой формы в модуле нужно прописать принтер и ориентацию страницы?

    Reply ↓
  61. Tatar_Ed

    и если прописать принтер, то уже не выбрать другой, будут конфликты при печати?

    Reply ↓
  62. Tatar_Ed

    (77)

    (Достаточно вынести флаг или радиобутон на форму поделки, что это ландшафт или портрет +

    передать в параметры + в печатных формах получить этот параметр и ежели он есть, воткнуть его в ПараметрыСтраницы.) можно по этой идеи подробнее. Пытался реализовать данную вещь в печатной форме ТОРГ12, результат отрицательный, а идея отличная.

    Reply ↓
  63. Ёпрст

    (82) в ТзПечФорм нужно всего лишь воткнуть новую колонку для «портрета/ландшафта» + если есть желание — для принтера.

    Слегка поправить модуль поделки, чтоб при печати в параметры летел флаг портрета/ландшафта и , либо принтёр с табличной части для каждой формы, или принтёр «по-умолчанию» с формы.. всё собственно.

    Могу переделать, если надо.

    Reply ↓
  64. Tatar_Ed

    (83) а можно пример?

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

    Reply ↓
  65. setre

    Это интересно… Попробуем…

    Reply ↓
  66. Ёпрст

    (84) ща обновлю публикацию.

    Reply ↓
  67. Ёпрст

    Обновил, можешь ставить свою ориентацию и выбирать принтёр для каждой формы.

    Reply ↓
  68. Ёпрст

    Reply ↓
  69. Tatar_Ed

    (88)

    ошибка теперь

    Если ТаблицаДокументов.НайтиЗначение(ВыбранныеДокументы.ПолучитьЗначение(Стр),ид,»ВидДокумента»)=1 Тогда

    {E:ВСЕ ДЛЯ 1СPRINTEXTFORMS.ERT(1032)}: Индекс не входит в границы списка значений.

    Reply ↓
  70. Tatar_Ed

    (88)

    при втором открытии обработки, данная ошибка больше не появилясь

    может что не так делаю? меняю ориентация листа, и ничего не меняется.

    Reply ↓
  71. Ёпрст

    (90) А этот пункт выполнил ?

    Ориентация= Форма.Параметр.Получить(«Ориентация»);
    
    ИсхТабл.ПараметрыСтраницы(Ориентация,,,,,,,,,1,,ИмяПринтера);

    Это надо в самой печатной форме прописать

    Reply ↓
  72. Ёпрст

    как-то криво разукрашивает..

    Reply ↓
  73. Tatar_Ed

    (90)

    Виноват этот пункт я упустил. Все проверю, перепроверю,отчитаюсь о проделанной работе :).

    и еще я так понимаю обработка видит только внешние печатные формы (ну у меня только так).

    Reply ↓
  74. Ёпрст

    (93) да, только внешние, собственно, другие, я как правило,в своих конфах вообще вырезал, чтоб не мешались

    🙂

    Reply ↓
  75. Tatar_Ed

    Совсем плохо стало ((

    Ориентация= Форма.Параметр.Получить(<<?>>»Ориентация»);

    {D:1С2010EXTFORMSPRNFORMSSF1137.ERT(825)}: Ожидается выражение

    ИсхТабл.ПараметрыСтраницы(Ориентация,,,,,,,,,1,,ИмяПринтера<<?>>);

    {D:1С2010EXTFORMSPRNFORMSSF1137.ERT(827)}: Переменная не определена (ИмяПринтера)

    Reply ↓
  76. Tatar_Ed

    (91)

    где то я ошибку делаю. Не туда прописываю. Сделал так:

    Если Устройство = 0 Тогда

    ИсхТабл.Опции(0, 0, 0, 0, «ДляСчетаФактурыВыданногоСГТДИзНоменклатуры»);

    ИсхТабл.ОбластьПечати(, 2, , );

    ИсхТабл.ПовторятьПриПечатиСтроки( 17, 19 );

    Если глПолучитьПолномочие(«РазрешитьРедактированиеТаблиц») = 0 Тогда

    ИсхТабл.Защита(1);

    Иначе

    ИсхТабл.Защита(0);

    КонецЕсли;

    ИсхТабл.ТолькоПросмотр(1);

    ИсхТабл.Показать(глНазваниеДокументаВжурнале(Докум),»»);

    Иначе

    ИсхТабл.ОбластьПечати(, 2, , );

    ИсхТабл.ПовторятьПриПечатиСтроки( 17, 19 );

    Ориентация= Форма.Параметр.Получить(«Ориентация»);

    ИсхТабл.ПараметрыСтраницы(Ориентация,,,,,,,,,1,,ИмяПринтера);

    ИсхТабл.КоличествоЭкземпляров(КолвоКопий);

    ИсхТабл.Напечатать(0);

    КонецЕсли;

    КонецПроцедуры // Печать()

    Reply ↓
  77. Ёпрст

    (95)

    Ориентация= Форма.Параметр.Получить(«Ориентация»);

    ИмяПринтера= Форма.Параметр.Получить(«ИмяПринтера»);

    Разукрашка съедает символы на форуме..

    Reply ↓
  78. Tatar_Ed

    (97)

    Аллилуйя. Все заработало, печатает куда нужно и как нужно. Автору большое спасибо за работу и за разъеснения.

    Reply ↓
  79. Ёпрст

    (98) воткни еще в печ форму, чтоб в xls сохраняло, бухам очень полезно бывает, отправить кому-нить все счетфактуры за год в экселе..

    Reply ↓
  80. Tatar_Ed

    (99)

    вот это тоже нужная вещь.:)

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

    Reply ↓
  81. Ёпрст

    (100) всё это есть в поделке + смотри описалово публикации — там код, который нужно вставить в печформу.

    Reply ↓
  82. Tatar_Ed

    (101)

    Все увидел, добавил, все работает на ура. Еще раз спасибо.

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

    Иногда бывает ситуация, что выбранный принтер «заснул». А при печати на такой принтер возникает ошибка. Такие случаи были и как можно обойти эту проблему?

    Reply ↓
  84. Ёпрст

    (103) до печати на принтёр «опрашивать» его на предмет готовности.

    Если из 1-ины послать задание на такой принтёр, то она «зависнет», лечится сыманием очереди печати с принтёра.

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

    (104) возможно я неправильно сформулировал. Меня интересует не как снять зависшую печать, а как проверить состояние принтера до печати, чтобы не было зависания. При массовой печати пользователь сильно нервничает.

    Reply ↓
  86. Ёпрст

    (105) почитай Абрахамса

    http://www.forum.mista.ru/topic.php?id=571423

    Reply ↓
  87. Ёпрст

    Хотя можно и через vbs посмотреть

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

    (106) спасибо. Для меня актуально и не только в 77.

    Reply ↓
  89. ФеяС

    Файл нужно в ехформ положить? Почему-то не заполняется таблица печатная форма, принтер и не печатает.Что сделать?

    Reply ↓
  90. Ёпрст

    (109) да всё равно куда…

    А что именно не работает ?

    Список принтёров пустой, или что ?

    Reply ↓
  91. cg_union

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

    Выдаёт следющее:

    глИдентификаторКонфигурации<<?>>()

    Функция не обнаружена (глИдентификаторКонфигурации)

    Reply ↓
  92. Тсрпё

    (111)

    Поправьте на вот так:

    ТипКонфы=0;
    //Если Найти(«,OUTK,OUTKF,OUMNPV,OUBV,BUOUSL»,»,»+Шаблон(«[глИдентификаторКонфигурации()]»))>0 Тогда
    // ТипКонфы = 1;
    //КонецЕсли;
    

    И попробуйте еще сразу выставить ТипКонфы = 1; если в вашей конфигурации есть справочники

    «Контрагенты»,»Фирмы»,»Пользователи», «Проекты», если их нет , ставьте в коде ТипКонфы=0;

    Reply ↓
  93. CheBurator

    Ёпрст — лучший

    Reply ↓
  94. Andrey_ru

    Доброго времени суток. Понадобилась ваша разработка для групповой печати с-ф бухгалтерии. Понятно, что дело давнее, но не могли бы Вы помочь. При выводе на печать идет только просмотр, на принтер не дает выводить, хотя принтеры в списке все видны. В каталог тоже не сохраняет, только просмотр. Никаких ошибок не выдает…. Буду очень благодарен за ответ.

    Reply ↓

Leave a Comment

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