Приветствую всех ищущих или уже знающих на личном опыте, о вечной борьбе между двумя версиями Управления торговлей. В данной истории будет изложен личный мой опыт в данном вопросе как программиста и в то же время консультанта по внедрению программы в компанию. Покажу методы, применявшиеся на протяжении всего пути, свои догадки, мысли, возникшие проблемы, с которыми ты не в силах ничего сделать, и спорные моменты. Иногда рассказ будет переходить в крик души от бессилия над ситуацией, те, кто сталкивался, поймут, а тот, кто пока обходит стороной, сможет сделать выводы и иметь представление, что такое вообще возможно. В основном материал будет полезен тому, кто еще не набил шишек в этой области.
Глава l
Разговоры о переносе шли давно, и как бывает, они откладывались в долгий ящик. Отправной точкой послужили бухгалтеры, взвывшие от тяжести возложенных на них задач по ручному перетаскиванию документов из одной программы в другую.
Непосредственно пользователей, работающих в программе, устраивало все (за исключением бухгалтеров), но увиденное в момент погружения в их «кухню» настораживало меня очень сильно, как оказалось далее, не зря. На банальный вопрос: «Почему у вас остатки по складу и организациям расходятся настолько сильно?», мне был дан простой и краткий ответ, «Так должно быть, это нормально». Чем глубже вникал в их работу, тем сильнее до меня доходило то, куда я попал… Учет в этой программе можно представить, как некий «филиал ада» в мире 1С. Тут было все, отрицательные остатки, измеряемые в сотнях тысяч штук, все виды расхождений, тонна и маленькая тележка ненужных созданных документов, отсутствие строгого деления на организацию с НДС и БЕЗ НДС, дубли номенклатуры и самое странное ценообразование, которое встречал. Если описывать его очень кратко, у них около 100 видов цен, представляющих собой различную наценку на цену прихода, далее человек берет приобретение, выбирает основную цену и рядом ставит тот вид цен, который соответствует требуемой наценке, на этом все. Теперь она втупую копирует цену с наценкой в колонку основной цены. В этот момент от увиденного, у меня отвисла челюсть, на вопрос «Кто вас этому научил?», я слышу «Да я так уже более 10 лет делаю».
Это то, что скрыто от общих глаз, в большинстве баз. И к такому нужно быть готовым, хотя бы морально.
Глава ll
Перейдем к практической части. Хорошим тоном считается удаление дублей и помеченных на удаление объектов, перед всеми действиями переноса. Задав менеджерам компании этот нелегкий вопрос, мне дали понять, что кроме меня все эти телодвижения мало кого интересуют. Окей, кое как почистив номенклатуру, по которой не было остатков и движений более 3 лет, погружаемся дальше. Необходима четкая дата начала переноса, проще и понятнее принять 1-е число месяца. В первую очередь обрабатываем: остатки по складу, взаиморасчеты с контрагентами, и документы. Если остатки и взаиморасчеты, к примеру, были перенесены на 01.01.2024, то документы подгружаются ТОЛЬКО после этой даты. Если кто-то не понимает, почему, по сути получится двойное движение. Сначала ввод начальных остатков, затем документ, делающий то же самое. Пользователям объясните этот момент, и жестко контролируйте это. Ведь не все поймут то, что понимаете вы, и будут делать как они привыкли и знают.
Есть несколько путей развития событий:
- Если у вас около типовая УТ 10 и учет в порядке. ВАЖНО: компания 1С уже давным-давно прекратила разработку правил переноса с 10 на 11. И типовые правила застыли в году так 2019. Поэтому разворачиваем УТ 11.4 релиза 2019 года. Я использовал именно 11.4.7.128, потому как на нее удалось найти рабочие правила обмена, и перед какими-либо действиями с переносом проверяйте версии и в принципе возможность переноса. И типовым методом перекачиваем данные.
1. В поставку к программе включена внешняя обработка для переноса, в целом работающая хорошо, ПРИ УСЛОВИИ УЧЕТА В ПРОГРАММЕ. Остатки все равно рекомендую перепроверять не один раз.
2. Далее указываем организации и выбираем дату, на которую будут выгружаться остатки. Нас встречает финальная форма перед выгрузкой, в которой указываем интересующие нас справочники и остатки.
3. Выгружаем и переходим в УТ 11.4. В ней находим и открываем «Универсальный обмен данными в формате XML». Указываем файл выгрузки и начинаем загружать данные, попутно скрестив пальцы и сделав хорошее дело для очищения кармы.
В случае если перенесенные данные вас устроили, можете на время выдохнуть, если нет, продолжаем дальше.
- Вариант 2. Программа представляет собой сборник ошибок в учете, или его полное отсутствие. Но хочется верить или так и есть, что конфигурация близка к типовой. Это мой случай… Выполняем 1 и 2 пункт, описанный выше, во 2 пункте можем выключать виды остатков, если по ним есть явные проблемы, а они есть. Если оставляем все галочки, типовые методы переноса не помогут ВООБЩЕ. Когда на складе номенклатуры Лопат№12 в реальности нет, в программе на складе их 100, а по организации их - 10000. Хорошо уже не получается, а сделать хорошо хочется. В моем случае перенес только остатки по взаиморасчетам, потому что они были +- в адеквате. Теперь настало время остатков по складам. В тот момент казалось, что это отнимает больше всего времени, но это не так.
Для решения данной задачки на коленке был написан этот кусок кода. Он не претендует на гениальность, но просто работает. Суть в следующем: Получаем остаток по складу, и исходя из данных по последнему движению партии приход, рассчитываем цену прихода номенклатуры.
Сохраняем в Excel и предвкушаем успех переноса, создавая документ ввода остатков в УТ 11, перенося колонки из Excel в документ. Если кто-то не знал, что так можно.
Мне удалось избежать проблем с определением, чей товар и какой организации он принадлежит. В чудесном мирке пользователей создавать документы передачи между организациями не принято, поэтому у организации, на которую делаются приход, огромный плюс по товарам, а от которой продают, огромный минус. Если вам «не повезло», и пользователи знают, что такое документ передачи, могу лишь посочувствовать и всучить этот небольшой запрос, данные из которого лучше сравнивать и обрабатывать в Excel. Использовать в консоли запросов.
Он покажет остатки товаров по складу и организации, дальнейшую обработку представляю себе вот так. В Excel выгружаем рядом колонки по организациям, стыкуем их что бы номенклатура соответствовала из левой колонки, правой. И сравниваем остатки, необходимо хотя бы ПОНИМАТЬ какой организации принадлежит номенклатура. Пример:
Орг |
Ном-ра |
Ост склад |
Ост орг |
Орг |
Ном-ра |
Ост склад |
Ост орг |
Орг1 |
Лопата1 |
200 |
210 |
Орг2 |
Лопата1 |
200 |
300 |
Если в программе беда с учетом, вы легко сможете найти подобные строки. Бороться с такими бедами сложно, при условии, что пользователи помогают вам очень нехотя. На ум приходит идея доработать большой кусок кода, таким образом, чтобы он по последнему поступлению номенклатуры относил ее к какой-либо организации.
- 3 Вариант. Кхм. Представим самый худший расклад, и теоретический выход из ситуации, если все-таки сделать работу нужно. Старую торговлю можно охарактеризовать как очень мягкой пластилин, который с удовольствием гнули и мяли во все направления по указке пользователей. И это происходило повсеместно. Вот так вот, со временем база превратилась «супер удобную», практичную, «удовлетворяющую» потребности и самое главное простую, «машину без колес». Не буду томить, если у вас насколько перелопаченная УТ 10, что весьма вероятно, и типовой перенос при попытках запуститься уходит в мир иной, громко хлопнув дверью. Кроме полу «ручного» варианта переноса существует «1С Конвертация данных». Освоить ее с ноля в короткий срок, на грани фантастики, можно, такие люди есть (завидую им). Но скорее всего вы не такой человек, и о этой конфигурации слышали где-то там и, может, запускали потыкаться. Так вот, «1С Конвертация данных» теоретически способна переварить все, что угодно, любую передачу данных, но за это она потребует огромного вливания ваших сил (если вы знаете, что это такое и как работать с этим), если нет, вы можете заплатить людям, которые знают, и в свое время так же потратили много времени на изучение этого вопроса. Поэтому и не стоит ожидать, что некая компания «Все четко, круто, дешево сделаем и перенесем» сделает это хорошо и недорого.
Есть и некая вероятность того, что те, кто превращал программу в то, что она есть сейчас, делали дело хорошо и имеют совесть, чтобы после некоторых доработок не оборвать концы. Если они компетентны и могут решать такие задачи, имеет смысл повторно обратиться к ним за помощью с переездом. Чаще бывает, что эти «хорошие люди» скрылись от вас, а вы силами программистов компании разобраться в том что они наворотили, не смогли. Остается искать специалистов на стороне, готовых взяться за эту задачу.
Имеем выгруженные справочники, некие остатки и переходим к следующему этапу. Выгрузка/загрузка документов. Как вы могли заметить, в типовых правилах отсутствует перенос документов. Далее развилка, если документов немного, запрягаем пользователей переносить их руками, заодно пусть изучают программу. Если же переносить нужно много, возвращаемся к «1С Конвертация данных». На просторе Инфостарта можно за 3 копейки купить правила конвертации данных, созданные для ТИПОВЫХ конфигураций. В большинстве, они предназначены под версии УТ 11.4 2019 года. Находим понравившейся и покупаем. Алгоритм действий схож с тем, что проделывали ранее, находим обработку Универсальный обмен данными, в котором можно указать правила для обмена. В типовой обработке, такого функционала нет. Указываем правила обмена, дату и интересующие нас документы. Загрузку можно осуществить как описано выше.
Глава lll
Если у вас все получилось, теперь можете выдыхать. Все, что вы могли сделать хорошо, вы сделали. Далее от того, насколько хорошо вы будете делать свою работу, все так же зависит успех всего деяния. Далее пойдет пересказ случившегося из первых уст очевидца (меня). Отрапортовав, что остатки срослись, и то, что в программе была произведена первоначальная настройка. Мы выдвинулись к клиентам, отчитавшись перед верхушкой о проделанной работе, выслушав лично их пожелания (как оказывается, их было немного). Мы получили главное, что тогда требовалось, отмашка флага на внедрение и полное заверение того, что все пользователи готовы учиться и работать в новой версии. На этом и порешали.
Главных действующих актеров данного «театра» можно охарактеризовать одним словом «пенсия». Сразу скажу, что против людей преклонного возраста ничего не имею и могу иметь, т.к. я сам молод и глуп, а они уже воооооон сколько пожили. Не обязательно это люди, которым за 50, возраст тут не главное. Кто работал с множеством разных клиентов, найдет у себя в голове случаи «за» и случаи «против». Предполагаемые черты характера объекта: Нежелание меняться, развиваться, думать самому; Узконаправленное мышление, делать только так и никак иначе; Преклонный возраст, но не всегда это показать; Попытки загрузить вас, не вашей работой в программе; Пустые выкрики, что в 10 было лучше, и просьбы перенести в 11 старый функционал, который «Ооо ужас», был перенесен и реализован уже из коробки.
К сути, не существует пользователей, которые бы при переходе из УТ 10 в УТ 11, не сказали бы одну из следующих фраз: «Раньше было лучше, а можно как в 10?, А мне бы в новую программу вот эту штучку из 10, а в 10 это есть». Но эти люди превзошли все мои ожидания, «пенсии» не нравилось буквально все, «интерфейс яркий, номенклатуру подбирать неудобно, искать ее неудобно, а где отчеты, а прайс-лист не тот, как у нас был, а почему не видно должность контрагента в реализации, а нам бы вот отчет такой, как был» и еще куча вопросов, тупых и не очень. В тот день я просидел с ними с утра и до вечера, рассказывая, показывая, настраивая при них программу по их хотелкам насколько это было возможно. То, что сделать на месте было невозможно, кропотливо записывалось на листик, чтобы завтра же реализовать это в программе. На все вопросы был дан ответ, «В старой программе делаете вот так, в новой почти то же самое, только тут и тут отличия, все поняли?», «Даааа», дружно отвечала «пенсия», когда я попросил показать, они сделали то, что от них требовалось, смогли в нужной последовательности надавить на кнопку. Тогда я и думал, что если прикладывать больше усилий, чем требуется, можно достичь и лучшего результата, все к этому и шло, они задают вопрос, я рассказываю, я рассказываю, они задают вопрос. И тут идеально подходит цитата из фильма «Я никогда так не ошибался в своей жизни». Прощаясь и ними, мы условились, что они пока что работают в УТ 10 и параллельно копаются в 11, перепроверяя все документы условно до 5 числа месяца, где в дальнейшем перенесем остальные документы и поедем на новой программе.
Дорогой читатель может возразить, «Это не они плохо понимают, а ты объяснил хреново». И будет в чем-то прав, несмотря на то, что за спиной имеется полное внедрение и поддержка УТ 11.4, активная в данный момент разработка подсистемы для УТ по продаже автозапчастей с выгрузками фото на ФТП и формированием автоматических прайсов для площадок таких как дром, авито. И еще годы работы с обычными пользователями по широчайшему спектру вопросов. Есть куда расти, но дело не в этом. Люди поняли, услышали, высказали свое мнение по поводу программы, предложили изменения, это и был знак того, что они начали об этом думать, остается повторять это с ними, пока они не поедут уже сами по себе. И вот где скрывается главная, на мой взгляд, сложность при переводе компаний на новые рельсы. Победить бездушную железяку? Да легко, она тебе и возразить не сможет, код выполнится так, как его написал ты, без вариантов. А заставить думать и меняться то, что находится в голове, не имея рычагов давления, ой как не просто.
Из этого делаем вывод: Если вы показываете, рассказываете, а толку от этого нет, далеко не факт, что проблема сокрыта в вас самих. Пользователи, а особенно «пенсия» любят включать энергосберегающий режим в голове, отрубающий не то что память и сами мыслительные процессы. Вспоминаем про установку цен, если ей показали (10 лет назад с ее слов), что цены нужно ставить именно так, а не иначе, и она все 10 лет делала одни и те же действия, не предпринимая ничего для ускорения работы, хотя все методы для этого она знает (установка цен через ценовые группы). У них есть четкий алгоритм, тык тык тык, шаг влево, шаг вправо от этого однонаправленного тоннеля для них как вариант не рассматривается в принципе. И тут появляетесь вы, с ворохом нового и «не нужного» функционала. Будьте готовы, что вас будут принимать в штыки, будут убеждать, что все поняли, даже могут притворяться, будто все хорошо, а потом «воткнут нож в спину», схватятся за него и поедут на вашем горбе. Один их методов борьбы в такой ситуации, доложить об их успехах их боссу, по-простому «донос» по поводу успеваемости ваших учеников. Если начальству не все равно на свои деньги, а именно на это и нужно давить, оно выписывает лекарство всем «отстающим» в успеваемости. Далее процесс должен пойти значительно быстрее.
В теории все звучит красиво, а в реальности, когда вам воткнут нож, будет уже поздно. Распознать то, что затевается на ранних этапах внедрения, сложно, потому как вы даже представить себе не сможете, в чем дело.
Вернемся в реальность, на момент, когда вышеописанное было ни коем образом не определяемо в моей голове. Большую часть следующего дня я потратил на выполнение их хотелок, печатных форм и отчетов. После связываюсь с ними, чтобы показать сделанное, и слышу еще больше откровенно «тупых» вопросов, которые обговаривались и обсуждались. Еще раз обговариваю то же самое, вкладывая главную мысль в слова «Как раньше, не будет. Учитесь здесь и сейчас. Непонятно что-то, спросите». В ответ я получаю скорее то, что хочет услышать каждый занимавшийся внедрением «Нам все понятно, вот тут, и вот тут уточнить/подправить и все». С чувством хорошо сделанного дела, напоминаю им про самостоятельную проверку перенесенных документов, как некое домашнее задание. В ответ «Будем делать, сами разберемся». И я верил, не будут же взрослые тети и дяди врать?
Настала середина рабочей недели, и нужно было отчитаться перед начальством о проделанной работе. Как перед клиентами, так и перед своим. Наши «успехи» устроили всех. Естественно, рассказывал, как они мне давили понять, «пользователи все понимают, задают вопросы, работа кипит». Общение продолжалось в формате, вопрос – ответ.
Вероятно, вы столкнётесь с такой же проблемой, как и я. Заключается она в том, что остатки товаров на момент вашего переноса и остатки спустя неделю работы с в программе могут слегка отличаться (они наколотили +- 100к штук). Чтобы вам не пришлось заново выгружать и загружать актуальные остатки, ЗАПРЕТИТЕ пользователям лазать в документах реализации, перемещения, закупки и т.д. в прошлых периодах. Любым из доступных вам способом, не дайте им поломать и это. Если же им жизненно необходимо править в прошлом периоде, «выжгите у них в голове» механизм «Списания и оприходования товаров». Уменьшили количество в реализации => сделали документ оприходования на то же количество, и наоборот. Да, это долго, да, для них это сложно и неудобно, но вам же самим придется потом править их косяки. И хорошо, если вы вообще заметите, когда эти расхождения начнутся.
Близился конец недели, именно в этот момент до меня начало доходить, что тут происходит. Документы в новой программе пользователи не делают, вопросы почти не задают. Спросил их прямо, «Почему? Сами ведь говорили, что все знаете». В ответ получил вопрос «Смогу ли я перенести новые документы из 10 в 11». Они хотели, чтобы за них делали их работу… Тут я совершил большую ошибку, сказав им то, что они только и ждали: «Перенос сделаем. Но нужна определенная дата, что бы загрузить докум……» Дальше они даже не слушали, то что им объясняли насколько важно правильно начать, не оглядываться на прошлое, сделать так и так, все это воспринималось не всерьез.
«Могут перенести, пусть переносят. Я не робот, чтобы перепроверять кучу документов», вот что было сказано, на заднем фоне в ходе очередного диалога. В моменте меня перекосило с этих слов. Нужно было действовать, и действовать решительно. Обсудив с своим начальником этот момент, собрали необходимые улики и выложили все перед их боссом.
На следующей неделе, первое, что я услышал в трубке, «Ой, а как бы нам сделать цены? Проверьте, как мы документики набили.» Донос сработал, все сразу стали заинтересованы в процессе. К концу недели, они уже полностью работали в новой программе.
Какова мораль для этой истории? Лично для себя усвоил то, что во всех бедах виноват не только я один, хотя даже сейчас думаю, что мог бы еще лучше работать с людьми, тем самым избегая того, куда все зашло. Понял, что не стоит боятся «наябедничать» на людей, ведь по итогу стало всем лучше. Пользователи пересели на новую программу, я закрыл немалое дело.
До сих пор ощущается тяжесть ответственности за сделанную работу. И как мне кажется, сделанную хорошо.
Кто лично сталкивался с таким в работе, приглашаются в комментарии с пересказом своих историй. Уверен, мы такие не одни) Что касается тех, кому предстоит подобный переход, могут почерпнуть важную информацию и споткнутся уже не тут, а где-нибудь в новом месте. Ведь учатся на своих ошибках.
Это мой первый опыт написания подобных статей, сначала недостатки в комменты, потом бросок тапочком)
Неочевидные проблемы, возникшие после переноса:
Ошибка деления на ноль, при печати УДП и ТОРГ12 из реализации. Либо создать счет-фактуру на этот документ, либо перезаполнить табличную часть с товарами. Написал обработку для перезаполнения. Если будете применять, обязательно тестируйте на копии перед основной базой.
Казначейство – Безналичные платежи. Не отображаются безналичные поступления/списания по определённому счету. Хотя все документы созданы и проведены. Решение: пометить счет на удаление и снять галочку, перепровести все документы безналичных движений по нему. В регистре сведений РеестрДокументов у них может быть не заполнен реквизит МестоХранения, поэтому мы их не увидим на форме Безналичные платежи.