Adaptersoft : АК-47




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

99 Comments

  1. Арчибальд

    На скриншоте АКМ, а не АК-47. Это засада!

    Reply ↓
  2. Душелов

    (1) Там автомат есть??

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

    (2)К нему даже прицеплено что-то

    Reply ↓
  4. JohnyDeath

    Читаю описание и думаю: «прям как у меня».

    Если всё так хорошо как и написано, то однозначно БОЛЬШОЕ спасибо!!!

    Я тоже ручками раскладывал гкомпом 3 конфы, потом натравливал на каталоги кдифф, а уж потом «муторно и нудно работаем пальчиками»

    Reply ↓
  5. WiseSnake

    Исчё не смотрел! Но плюс за идею поставлю, чтобы не забыть потом поставить. На картинках вроде все красиво!

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

    А вот это реально задолбало…

    Reply ↓
  6. mihast

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

    Reply ↓
  7. Re:аниматор

    мда… то кассирочка, то бабенция с калашом, следующий вариант баба на тяжелой технике =)

    Reply ↓
  8. Поручик

    Уберите автомат у девки. Женщина с автоматом — это обезьяна с гранатой.

    Reply ↓
  9. bestuzhev

    (8) Присоединяюсь, требуем фото без автомата.

    Reply ↓
  10. larisab

    Помнится недавно подобную штуку предлагали для 8.1 за жуткие деньги, а тут так скромно и без шуму, классная штучка. Под 8 не планируете?

    Reply ↓
  11. gutentag

    (8) нет, пусть будет!

    за нее, «девушку с веслом», отдельный плюс

    Reply ↓
  12. support

    сиськи рулят 🙂 вот уже и на главной странице

    Reply ↓
  13. biv75

    (12) Пример правильного маркетингового хода, ну и что что у девушки, пневматическая копия АКМ, за то как поперло ))), всех сразу заинтересовало

    Reply ↓
  14. biv75

    Да кстати, вещь хорошая и нужная в хозяйстве плюс заслужено

    Reply ↓
  15. CheBurator

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

    Reply ↓
  16. adapter

    так вроде ж есть описание в конфе и пример. Если этого мало, то конечно могу и подробней, только хоть наводящих вопрос, конкретики дайте, или скажите где сложности?

    Reply ↓
  17. mov68

    Буду смотреть, но плюс уже за попытку

    Reply ↓
  18. muzikant

    Сиё волнует умы аборигенов давно….

    Reply ↓
  19. cs25

    Плюс несомненно !

    Reply ↓
  20. grigsi

    Ставлю Плюс !

    Reply ↓
  21. 4ish

    Вау, спасибо.

    Подскажите, а как поступать в случае, если изменения коснулись, например, документа и в обновлении типовой и в измененной конфигурациях? Сначала обновить до типовой, а потом ручками вносить кусок измененного кода?

    Reply ↓
  22. adapter

    нет. это как раз ситуация «коллизия». для их разрешения есть документ «анализ коллизий». Все ваши изменения (и структры объекта МД и программного кода) даются в текстовых файлах, которые вы сравниваете разрешаете через KDiff. В большинстве случаев kdiff это делает сам автоматом и правильно, но вам дается возможность проверит и поправить.

    описание и пример смотрели?

    Reply ↓
  23. JohnyDeath

    (21) ну вообще-то как раз для таких случаев и создана эта конфа (на сколько я понял). Kdiff3 способен сравнивать 3 файла: старую типовую, новую типовую и твою измененную. Простые случаи он в силах сам исправить. Более сложное — ручками. Примерно как у автора на последнем рисунке

    Reply ↓
  24. 4ish

    Пытался.

    Но так я начинающий, мало что понял. 🙂

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

    Reply ↓
  25. artbear

    (0) Скажу сразу, прогу не смотрел, т.к. 77 счас мало занимаюсь, но подобной схемой пользуюсь давно.

    Вопрос: метаданными сливаются нормально, правильно?

    Reply ↓
  26. adapter

    да. даже вставил проверку и восстановление уникальности идентификаторов в файле ОбъектыМетаданных.txt

    отрабатывает перед сборкой МД, опирается на Next ID из MainDataContDef (gComp его кладет в ИдентификаторыКонфигурации.mdp)

    т.е. при слиянии ОбъектыМетаданных.txt надо последить чтобы список добавленных объектов был полным, а идентификаторы АК сам доделает.

    Reply ↓
  27. adapter

    (24) да

    Reply ↓
  28. 4ish

    (23), (27) спасибо.

    Reply ↓
  29. JohnyDeath

    (26) при слиянии ОбъектыМетаданных.txt надо последить чтобы список добавленных объектов был полным, а идентификаторы АК сам доделает.

    Как следить?

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

    Reply ↓
  30. adapter

    пример работы AK47

    …………………………………………………………………..

    Скопируйте папку BasesAK в корень диска С. Тогда все пути в примере совпадут

    и перезаполнять ничего не придется.

    для тестирования взял простенькую самодельную конфигурацию из десятка объектов МД.

    Будем считать что:

    MD1 — типовая конфигурация (старый релиз)

    MD2 — типовое обновление (новый релиз)

    MD3 — Рабочая конфигурация (измененный МД1)

    Описание изменений обновления конфигурации (MD2)

    …………………………………………………………………..

    спр. Резервы

    — кол.ур увеличено до 5

    — в комментарии «Комент»

    — в синониме «Синон»

    док. Приход1 — добавлен

    док. Приход

    — добавлено 2 рекв. тбл.ч

    описание изменений рабочей конфигурации (MD3)

    …………………………………………………………………..

    док. Приход

    — добавлен реквизит в шапке «нов_в_шапке»

    Отчет Финансы1 — добавлен

    Reply ↓
  31. adapter

    на примере дока Приход:

    в МД2 добавлено 2 реквизита в табл части,

    в МД 3 добавлен 1 реквизит в шапке

    на выходе в док «Приход» будет 2 реквизита в табл части и один реквизит в шапке. Это пример разрешения коллизии — изменения одного объекта метаданных в двух МД.

    >Как следить?

    в файле ОбъектыМетаданных.txt в каталоге результата должны быть строчки:

    57 Документ.Приход.новый1

    53 Документ.Приход.новый_в_шапке

    58 Документ.Приход.новый2

    Иды (57,53,58) проверятся на уникальность сами. Главное чтоб сами строчки с названиями объектов МД присутствовали.

    Reply ↓
  32. 4ish

    Вроде все понял, объясните только — как работать с GUIDData, если там ничего не понятно? Откуда я знаю из какого мд-шника брать строку, из-за которой идет конфликт объединения?

    Reply ↓
  33. adapter

    GUIDData

    содержит в себе информацию о наследовании файлов конфигурации. На содержание именно этого файла опирается 1с, когда говорит, что загружаемая конфигурация не является прямым потомком текущей.

    я думаю тебе без разницы. ну бери из обновления например.

    Вот тут все ответы

    http://yandex.ru/yandsearch?text=GUIDData+структура+конфигурации

    Reply ↓
  34. blik

    Лог парсинга при попытке заполнить по запароленному MD-ешнику (загрузка не прошла):

    Extraction started: 2009.04.21 09:36:01

    ERR: Неверный формат: нет завершающей скобки ‘}’: C:DOCUME~1E6F6~1LOCALS~1Temp mp_7: line 0, column 33; MainMetadataStream

    предыдущая ошибка возникла в потоке d:work_new1cv7.mdMetadataMain MetaData Stream

    Убрал пароль, загрузка прошла. Предусмотренно заполнение из запароленного MD-ешника? Что-то я не нашёл.

    Reply ↓
  35. adapter

    кажется ответ очевиден — нет. Работать с закрытыми конфигурациями не будет

    Reply ↓
  36. AntiBuh

    спасибо, попробуем

    Reply ↓
  37. LuckyIzja

    (1) На скриншоте АК-74.

    Reply ↓
  38. intervencia

    Спасибо!

    Reply ↓
  39. napala@

    Спасибочки! ничего кроме ПЛЮСА )

    Reply ↓
  40. napala@

    у меня проблема… не хочет сохранять Kdiff3 выдает ошибку и все! сижу уже часа уже бы ручками обновила

    Reply ↓
  41. adapter

    стучись в аську, попробую помочь по скриншотам и описаниям траблов

    Reply ↓
  42. timurei

    инструкция прелогаеться…:)…?

    Reply ↓
  43. timurei

    как пользоваться AK47_installером

    Reply ↓
  44. Eugenie

    Спасибо автору. Плюс конечно же!

    Reply ↓
  45. vlsv

    возникает проблема (не сохраняет kdiff3.exe ) если в пути каталога с базой AK47 русские буквы

    Reply ↓
  46. vlsv

    В документе «анализ коллизий», изменения печатной формы, как зафиксировать изменения? Выскакивают 2 таблицы и что с ними делать?

    Reply ↓
  47. uncle_au

    Конечно плюс!

    Reply ↓
  48. @lex

    Автору респект, сэкономил кучу времени :).

    Reply ↓
  49. adapter

    с русскими путями у меня были проблемы, поэтому я выбрал версию KDiff помладше. Она и включена в дистриб. С ней у меня русские пути стали отрабатывать нормально. Попробуй на другом компе. И общий совет — не кладите каталоги для парсинга далеко. Чем меньше уровень вложенности, длина пути, тем проще и наглядней работать. Я предлагал вариант с каталогом C:BasesAK

    изменения печ форм (mxl) через kdiff не прогоняются, потому что mxl это бинарный файл, а не текстовый. Поэтому показываю только наглядную разницу между ними. К слову сказать стандартный конфигуратор не умеет и этого, выдает многозначительно «бинарный файлы раличны». В принципе можно и mxl до НАГЛЯДНОГО текста разложить. У меня так вначале и было. Но потом убрал. Думаю это лишнее.

    Reply ↓
  50. adapter

    Спасибо за плюсики, ответы и отзывы. Надеюсь что кому то мой труд был полезен. Надеюсь и на обратное. Вот предлагаю такую тему для обсуждения: Сделать АК-47 платным или нет? Ну и просто ваши мысли по этой теме (не только про АК 47) приветствуются здесь:

    http://www.infostart.ru/forum/forum13/topic9131/messages/

    Reply ↓
  51. OlegD

    Что то не работает у меня.

    Запускаю Заполнить.

    Выдает.

    13:44:22 НАЧАЛО ЗАПОЛНЕНИЯ 486

    13:44:22 — чистка каталога и справочника ОбъектыМД…….

    13:44:22 — парсинг MD……..

    13:44:22 — заполнение справочника ОбъектыМД………

    13:44:23 ОКОНЧАНИЕ ЗАПОЛНЕНИЯ 486

    И все, открывает пстой справочник.

    ??? Что бы это значило?

    Reply ↓
  52. adapter

    видимо GComp не отработал. должен еще лог парсинга выводится (если ты галку не снял). Лог пустой? Для запуска Gcomp должен лежать в одном из каталогов, прописанных в переменной Path. При первом запуске АК копирует gcomp.exe в каталог Винды. Скопируй сам или посмотри отладчиком в гл. модуле ПриНачалеРаботыСистемы

    Reply ↓
  53. OlegD

    Так вроде получилось.

    Только ни как не удается побороть Задачу.

    Загружаемая конфигурация является приоритетной

    -Замещение Объекта: «Задача»

    -Произошла ошибка в процессе объединения конфигураций.

    Не пойму в чем причина?

    Сильная програмулина вообще то.

    Reply ↓
  54. adapter

    ПОпробуй просто открыть результирующий МД в конфигураторе, думаю не откроется. Видимо напутал ты в объединении текстового файла «ОбъектыМетаданных», пропустил названия каких то добавленных объектов

    Reply ↓
  55. Veduin

    Очень даже полезно и функционально. Плюс!

    Reply ↓
  56. rasswet

    боюсь не осилю((

    Reply ↓
  57. Veduin

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

    Появляются новые константы:

    IDD, УникальныйIDD, ПарольМОД, МастерОбмена, ВерсияМДФайла и др.

    а также общие реквизиты IDD..

    Они так сказать мешают, отвлекают внимание, при обновление???

    Reply ↓
  58. adapter

    это ты где такое нашел? В примере такого точно нет. Ты описал объекты МД, которые встраивает в конфу Менеджер Обмена Данными фирмы ПиБи. Может у тебя в каком МД они есть?

    я его тоже юзаю, но чтобы мои тараканы к вам переползали это фантастика

    Reply ↓
  59. Veduin

    Ничего принципиально нового не делал…

    Взял два типовых мд бух. 495 и 506, и рабочую конфигурацию измененную 495,

    И по инструкции стал юзать АК-47, при анализе колизий оказалось, измененно 3 документа. Собрал 4 мд в документе «Анализ колизий», и сравнил с типовым 506, но он и выдал сообщение помимо 3 документов не стыковка вот в этих константах, которые добалненны.. IDD, ПарольМод и тд…

    Вопрос и возник, зачем необходимы даные добавки??

    Reply ↓
  60. Veduin

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

    Reply ↓
  61. Flyyy

    Однозначно Плюс! Единственное я так и не понял как эта штука работает

    с правленными *.xml, она их получается не сохраняет, коллизия не отрабатывается, а вследствии чего не дает собрать md.

    Reply ↓
  62. adapter

    да, c xml пока тока визуальное сравнение и ручная правка. Насчет коллиизи принимается. Подумаю об этом в новой версии. а пока вноси изменения руками, положи результат в нужное место, а по окончании удали эту строчку из дока «Анализ коллизий»

    Reply ↓
  63. Veduin

    Раз я уже начал тестить, такого монстра, то обьясните чайнику, как же решить вопрос с ошибками

    Неуникальный числовой идентификатор — 0: и тд.

    Ну есть изменения по документу добавил 2 реквизита я и 1 типовой…

    Уже раз десять лопатил ОбъектыМетаданных.txt, все равно ругается

    ERR: Нулевой числовой идентификатор

    Reply ↓
  64. adapter

    общий принцип работы с ОбъектыМетаданных.txt я описал выше. Если у тебя какие-то уникальности — шли файлы и давай в аську

    Reply ↓
  65. adapter

    хотя в принципе и так можно догадаться, по русски же пишет — ИД не может равняться 0 или пустому значению.

    Reply ↓
  66. slavik_s

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

    Скажете что иногда невозможно решить задачу не изменив типовую? Это бред.

    Язык 1С Велик и Могуч чтобы решить все проблемы, остальное можно сделать внешними компонентами. Если требуется слишком много изменений, тогда писать свою конфигурацию и обмен данными с типовой.

    В 99,9999% случаев в объекты типовой можно вообще не вписывать ни строчки

    Reply ↓
  67. JohnyDeath

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

    Reply ↓
  68. slavik_s

    Есть типовые решения разрабатываемые фирмой 1С — это святое табу, которое развивает сама фирма 1С. Это решение общих учетных задач для всех без исключения, так как соответствуют требованиям налогового кодекса и ПБУ.

    Но есть и отраслевые дополнения которые должны удовлетворять специфике конкретной отрасли или конкретного предприятия — вот всю эту специфику лучше оформлять отдельной конфигурацией. А пользователи могут работать как в типовой бухгалтерии со стандартными 1С-овскими справочниками и документами, так и в отраслевой конфигурации со специально созданными отраслевыми настройками которых нет в типовой, но итоги расчетов по которым выгружаются в типовую конфу 1С. При такой политике невмешательства в типовые конфигурации они обновляются без всяких ненужных там вставок и дописок одним махом и гарантируют от неквалифицированных изменений программиста незнающего ПБУ или от заказчика незнающего методику решения учетных задач в типовых конфах, но требующих от программиста произвести ненужные изменения так как он понимает.

    Reply ↓
  69. JohnyDeath

    (71) бред какой-то. Или я не так понял тебя.

    Мне жаль тех людей кто работает по такой схеме.

    Давай на конкретном примере. Есть торговая компания и типовая конфигурация «ТиС». Директор хочет видеть анализ продаж не только в разрезе тех измерений, которые заданы в конфигураторе, но также ещё по Менеджерам и ТорговымТочкам покупателей.

    Что я должен сделать?

    Reply ↓
  70. adapter

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

    Reply ↓
  71. Ish_2

    (71) В идеале было бы неплохо и к этому нужно стремится. Редко получается.

    Но если Вы предлагаете эту методу как универсальный подход , то — бред.

    Споры на эту тему отшумели. Разжевывать скучно.

    Reply ↓
  72. Abadonna

    (71)> это святое табу, которое развивает сама фирма 1С

    Ага! И не произноси имя Нуралиева всуе :)))))))))))))))

    Reply ↓
  73. slavik_s

    JohnyDeath (писал)

    Есть торговая компания и типовая конфигурация «ТиС». Директор хочет видеть анализ продаж не только в разрезе тех измерений, которые заданы в конфигураторе, но также ещё по Менеджерам и ТорговымТочкам покупателей.

    —————————————

    1. Создаешь новый регистр и прописываешь там нужные измерения:

    Менеджер — типа Справочник.Пользователи

    ТорговаяТочка — типа Справочник.Склады

    Ресурсы например ПродСтоимость

    2. Создаешь новый документ ПродажаПоМенеджерам допустим в котором есть реквизиты:

    Менеджер — типа Справочник.Пользователи

    ДокументПродажи — типа Документ.Реализация (это реквизит для подчинения типовому)

    3. Форму документа ПродажаПоМенеджерам рисуешь свою или перерисовываешь с типового документа «Реализация» и вставляешь реквизит Менеджер. При заполнении формы автоматически заполняешь новый типовой документ «Реализация», ПриЗаписи сохраняешь ссылку в реквизите ДокументПродажи

    4. Создаешь новый журнал для хранения документов ПродажаПоМенеджерам

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

    6. Отчет тоже новый который строишь по двум регистрам.

    7. При необходимости в новые объекты можно добавить еще что-либо.

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

    —————————————

    Спорить ни с кем не собираюсь, моя фирма уже более 5 лет так работает.

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

    (76)Согласен. Для дополнительных реквизитов всегда можно воспользоваться дополнительным справочником/документом без потери сопровождения через ИТС. Однако коробочные продукты продает не только 1С, и отнюдь не все продавцы обеспечивают оперативность сопровождения. У меня вот есть в конфе ошибки в двух глобальных модулях, на эти модули завязаны куча документов, а разработчик на сообщения об ошибках не реагирует, хотя регулярно выпускает новые релизы с доработками в других местах.

    Так что бывает, что все равно без влезания обойтись не удается (73). Структурирвать, минимизировать, отстрелять из автоматического оружия.

    Reply ↓
  75. slavik_s

    Арчибальд

    А зачем к ошибкам в двух глобальных модулях добавлять новые от неоперативного производителя? Раз не сопровождают берите сопровождение на себя полностью. Тем более производители типа РАРУСа почему то строят свои конфы на типовых 1С. Ну зачем в конфе по общепиту учет Основных средств например? Купили продукты посчитали сколько в борщ капусты вложить и списали капусту. Сам расчет в Общепите а закупку и списание капусты выгружаем в типовую бухгалтерию.

    Reply ↓
  76. vadim_p_volkov

    (0) Собираюсь переходить с конфы «БухУчет для Украины» на «ПУБ для Украины».

    Различий масса, и вот одно из них: справочник ТМЦ, реквизит БазЕдиница. В Бухии — типа Перечисление.Единицы, в ПУБ — типа Справочник.КлассификаторЕдИзм. Возможно-ли в АК-47 настроить такое соответствие для переноса данных?

    Reply ↓
  77. orefkov

    (76) Сильно. Только смущает во-первых объем работ, во-вторых моменты:

    «3. Форму документа ПродажаПоМенеджерам рисуешь свою или перерисовываешь с типового документа «Реализация» и вставляешь реквизит Менеджер. При заполнении формы автоматически заполняешь новый типовой документ «Реализация», ПриЗаписи сохраняешь ссылку в реквизите ДокументПродажи»

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

    Либо, если не копировать структуру данных, то трах с организацией ввода — либо криво на ТЗ, либо не криво на ТП из 1С++, что не каждые приемлют. Опять же всю логику работы формы реализации придется невозбранно копипастить, ибо ООП нету, не отнаследуешься. То есть при изменении типовой формы один хрен будешь все переносить в свой док, только уже без помощи сравнивалок, как штатных, так и нештатных.

    Дальше еще один большой трах с синхронизацией состояний нового дока с доком реализации (проведенность, изменения и тп).

    «5. В модуле документа прописываешь движения по новому регистру и одновременно проводишь типовой подчиненный Документ.Реализация»

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

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

    Reply ↓
  78. adapter

    (79) АК 47 не предназначен для переноса данных между конфигурациями

    Reply ↓
  79. slavik_s

    (80) Александр, безусловно объем работ однократно возрастает, но зато потом несколько лет подряд не приходится копипастить.

    3. Структуру данных копировать не нужно, а вот скопировать содержимое формы и вставить в свою форму ДА, так же тупо копируем текст модуля формы документа в модуль формы своего, затем останавливаемся на ошибках синтаксиса и разыменовываем (через точку) обращения к полям подчиненного документа. Проблему с заполнением таблицы документа (как было в штатном) решаем с помощью компоненты FormEx, получаем даже удобнее и красивее штатный документ.

    ЗАКАЗЧИКА предупреждаем о завышенной стоимости работ, но за последующие копипастенья платить каждый раз несколько лет не придется. Обычно соглашаются.

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

    Синхронизация проведенности/непроведенности/пометкиудаления/снятияпометки решается глобальной процедурой созданной с помощью FormEx. Предварительно пишем автозагрузку дополнительного глобального модуля во внешней обработке Reklama.ert которую вставляем вместо надоедливой рекламы от 1С, заботимся о том чтобы этот файл сам себя устанавливал после затирания его при установке очередных форм отчетности 1С77.

    Reply ↓
  80. artspeed

    хм. я так и не понял в чем дело:

    При анализации коллизий выскакивает guiddata. А в нем непонятные символы.

    и написано типа использование на свой страх и риск. что это? влияет ли на обновление конфигурации.

    и еще бывает типа такого.

    ERR: Нулевой числовой идентификатор для Документ.Приход.новый_в_шапке

    что тогда в этой ситуации делать? Баги?

    Потрашил кстати ваш пример

    Reply ↓
  81. idw

    Под Windows 7 программа не устанавливается. 😥

    Reply ↓
  82. idw

    Автор чем отличается версии базовая, лайт и проф и та, что выложена здесь?

    Reply ↓
  83. fastwriter

    Хотя сама конфигурация хорошая — эротику лучше постить на другие ресурсы (баш.орг и пр.)

    Reply ↓
  84. artbear

    Автор, Программа полезная, но где отличие лайт и прочих версий от проф? Почему его нет в описании?

    Жду.

    Пока -1

    Reply ↓
  85. HITDEVIL

    Задумка хорошая! Кто использовал поделитесь впечатлениями!

    Reply ↓
  86. adapter

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

    Reply ↓
  87. mikhailovaew

    Эх, это для 7.7… а ни в заголовке ни в разделе об этом не упомянуто…

    Reply ↓
  88. adapter

    указано в стандартных свойствах публикации

    Платформа

    1С:Бухгалтерский учет 7.7

    Ну сейчас в шапке еще добавлю

    Reply ↓
  89. Flight
    Reply ↓
  90. Flight

    Вроде разобрался, не знаю правильно сделал или нет, но собралась новая конфигурация после того, как добавил в ОбъектыМетаданных.txt эти строки без айдишников:

    Перечисление.СЛПРОЖ
    Перечисление.ИЗЛВТР
    Перечисление.НЕРАБМАТЬ
    Перечисление.ПРБЛОК
    Перечисление.ПРЗАГР
    Перечисление.ПРКОНЦ
    Перечисление.ПРОВОВ
    Перечисление.ПРОЖСУПР
    Перечисление.РАБВОВ
    Перечисление.РАБЗАГР
    Перечисление.РАБЛОК
    Перечисление.РАБСВПК
    Перечисление.СЛДАПБЛ
    Перечисление.СЛПРИЗ
    Перечисление.ТРУДЛИЦО

    Показать

    Reply ↓
  91. Jill

    Крутая штука.

    Но возник вопрос: так каким образом разрешать коллизии *.mxl?

    Ткните носом пожалуйста.

    Reply ↓
  92. adapter

    клюшки живут? Еще где то есть масштабная промышленная эксплуатация 77? Удивлен.

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

    Reply ↓
  93. Jill

    (97) живут. Еще как живут. 🙂

    Со сравнением все понятно.

    Другое дело где и как выбирать этот самый вариант mxl для разрешения коллизии.

    Т.е. все коллизии были разрешены, кроме неск. mxl. Дабл. кликом в обработке сравнения я ими любуюсь и решаю что, н-р, вторая таблица мне нравится больше. А дальше… А дальше все не очевидно (по крайней мере мне и сейчас).

    Идти в объекты md, подменять таблицы, перезаполнять и снова разрешать все коллизии?

    Либо я чего-то крайне простого не вижу, либо придется немного подкрутить…

    Reply ↓
  94. adapter

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

    м.б. после сборки через буфер в конфигураторе заменить? Как это в стандартном случае делалось? уже не помню 🙂

    Нашел у себя новый релиз АК-47. Визуально вроде есть изменения в лучшую сторону.

    Если кому интересно — берите в Opensource — дорабатывайте, функционал, справку, выкладывайте. Звезд мне не надо, копирайты прошу оставить.

    Reply ↓
  95. rewer8

    А где его можно скачать? Новый анализатор коллизий? Можно ссылку

    Reply ↓
  96. adapter

    здесь же 🙂

    Reply ↓
  97. CheBurator

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

    Спасибо.

    Reply ↓
  98. adapter

    «Правильно ли я понимаю…» да

    «Понадобится ли досконально разбираться как работать к kdiff..? » нет

    🙂

    Reply ↓
  99. CheBurator

    (103) ок. попробую.. может быть…

    Reply ↓

Leave a Comment

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