воскресенье, 12 ноября 2017 г.

Ошибки и всякие непонятности в конфигурации 1С "Бухгалтерия государственного учреждения, ред.2" (БГУ)

В данном разделе будут собраны баги (ошибки) найденные в конфигурации БГУ 2, а так же возможные пути их обхода. И так поехали:
1) В БГУ версии до 2.0.52.44 в Акте о списании объектов НФА (ф.0504104 и ф.0504105) неправильно проставляется дата ввода в эксплуатацию ОС. Возможна такая ситуация, когда в инвентарной карточке ОС стоит дата ввода в эксплуатацию как Дата1, а в  Акте о списании объектов НФА - Дата2. Вызвана данная ошибка тем что в форме Акта списания и Инвентарной карточке используются разные алгоритмы для получения даты ввода. В Акте списания дата ввода определяется как наибольшая из дат полученных из регистра сведений События ОС. Т.о. если для ОС изначально ошибочно была задана дата ввода в эксплуатацию как Дата1 (например 01.01.2010), а затем дата ввода в эксплуатацию была исправлена, например с помощью документа Изменение состояния ОС на Дату2 (например 01.01.2005), то в Акт списания попадет Дата1 (т.к. 01.01.2010> 01.01.2005). В инвентарной же карточке дата ввода в эксплуатацию определяется по последней записи из регистра сведений События ОС. 


По данной ошибке заведен баг Ошибка 00-00133006 исправление ожидается в  релизе 2.0.53

суббота, 19 ноября 2016 г.

1С БГУ редакция 2.0 трудности перехода

В данной статье пойдет речь о проблемах, встреченных при переходе на БГУ(Бухгалтерия государственного учреждения) редакции 2.0 (далее БГУ2).

Перенос данных производится при помощи встроенной в конфигурацию БГУ1 универсальной обработки обмена данными (меню "Операции – Обработки – Выгрузка данных в БГУ2"). В обработку следует подгрузить правила из актуального релиза БГУ2 (они расположены по следующему пути "StateAccounting/2_0_XX_XX/Обмены данными/Перенос данных из конфигурации Бухгалтерия государственного учреждения, ред 1.0/"). В этой же директории располагается файл "ПОРЯДОК ПЕРЕНОСА ДАННЫХ.TXT", в котором подробно расписана процедура переноса данных, а также минимальная версия релиза БГУ1, для которой подходят правила.   


1. Правило номер Один - перенос данных следует выполнять в начале года, желательно в самом начале января! Это вам сэкономит много времени, так как правила переноса хорошо справляются с задачей переноса остатков на начало года и не очень хорошо (местами ужасно) с переносом документов наработанных в течении года. Так во многих базах у нас после переноса по 101 счету остатки на начало года шли, а вот обороты нет. Причина - некорректно переносится документ Безвозмездное поступление ОС, а точнее некорректно навешиваются проводки на документ (в БГУ2 он называется Принятие к учету ОС,НМА,НПА). Решение проблемы - простое перепроведение документа с перевыбором типовой операции.
2. Не на всех версиях релизов переход происходит одинаково гладко. Подберите для себя оптимальный вариант. Для нас таким стал релиз БГУ 1.0.40.3 и 2.0.44.18
3. В некоторых базах после перехода пропала часть контрагентов. Как оказалось, БГУ2 объединяет контрагентов, если у них совпадет ИНН и КПП. Поэтому перед  переходом проверьте чтобы у всех контрагентов были разные ИНН и КПП либо очистите значения этих  реквизитов.
4. Перед переносом проверьте уникальность кодов справочников. Справочники с неуникальными кодами при переносе буду объединены в один. Поэтому, если существуют дубли в кодах справочников их следует перенумеровать.
5. В кодах справочника Драгоценные материалы не допускается присутствие нечисловым символов. Иначе после переноса не сможете открыть инвентарную карточку объекта, будет выскакивать ошибка "ОбщийМодуль.УчетДрагМатериалов.Модуль(945)}: Преобразование значения к типу Число не может быть выполнено
        ТекСтрока.КодДляСортировки = Число(ТекСтрока.КодДрагМатериала);
". 

Продолжение следует...

Ссылки на обсуждения БГУ2:

пятница, 5 февраля 2016 г.

КОРПОРАТИВНАЯ ПАМЯТЬ И ОБРАТНАЯ КОНТРАБАНДА 

Корпоративная память бывает двух видов: люди и документация. Люди помнят, как вещи работают, и знают, почему. Иногда они записывают эту информацию куда-нибудь и хранят свои записи где-нибудь. Это называется «документация». Корпоративная амнезия действует точно так же: люди уходят, и документация исчезает, гниёт или просто забывается.
Я провёл несколько десятилетий, работая в большой нефтехимической компании. В начале 1980-х мы спроектировали и построили завод, который переделывает одни углеводороды в другие углеводороды. За следующие 30 лет корпоративная память об этом заводе ослабла. Да, завод всё ещё работает и приносит фирме деньги; техобслуживание производится, и высокомудрые специалисты знают, что им надо подёргать и куда пнуть, чтобы завод продолжил работать.
Но компания абсолютно забыла, как этот завод работает.
Это произошло по вине нескольких факторов:
• Спад в нефтехимической промышленности в 1980-х и 1990-х заставил нас прекратить принимать на работу новых людей. В конце 1990-х, в нашей группе работали ребята в возрасте младше 35 или старше 55 — с очень редкими исключениями.
• Мы потихоньку перешли на проектирование с помощью компьютерных систем.
• Из-за корпоративных реорганизаций нам пришлось физически переезжать всем офисом с места на место.
• Корпоративное слияние несколькими годами позже полностью растворило нашу фирму в более крупной, вызвав глобальную перестройку отделов и перетасовку кадров.

Индустриальная археология

В начале 2000-х я и несколько моих коллег вышли на пенсию.
В конце 2000-х компания вспомнила о заводе и подумала, что было бы неплохо сделать с ним что-нибудь. Скажем, увеличить производство. К примеру, можно найти узкое место в производственном процессе и улучшить его, — технология-то эти 30 лет не стояла на месте, — и, может быть, пристроить ещё один цех.
И тут компания со всего маху впечатывается в кирпичную стену. Как этот завод был построен? Почему он был построен именно так, а не иначе? Как именно он работает? Для чего нужен чан А, зачем цеха Б и В соединены трубопроводом, почему трубопровод имеет диаметр именно Г, а не Д?
Корпоративная амнезия в действии. Гигантские машины, построенные инопланетянами с помощью их инопланетной технологии, чавкают, как заведённые, выдавая на-гора груды полимеров. Компания примерно представляет себе, как обслуживать эти машины, но понятия не имеет, что за удивительное волшебство творится внутри, и ни у кого нет ни малейшего представления о том, как они создавались. В общем, народ даже не уверен, что именно надо искать, и не знает, с какой стороны следует распутывать этот клубок.
Отыскиваются ребята, которые во время строительства этого завода уже работали в фирме. Теперь они занимают высокие должности и сидят в отдельных, кондиционированных кабинетах. Им дают задание найти документацию по означенному заводу. Это уже не корпоративная память, это больше похоже на индустриальную археологию. Никто не знает, какая документация по этому заводу существует, существует ли она вообще, и если да, то в каком виде она хранится, в каких форматах, что она в себя включает и где она лежит физически. Завод проектировался проектной группой, которой больше нет, в компании, которая с тех пор была поглощена, в офисе, который был закрыт, используя методы до-компьютерной эпохи, которые больше не применяются.
Ребята вспоминают детство с обязательным копошением в грязи, закатывают рукава дорогих пиджаков и принимаются за работу.
Первый шаг поисков очевиден: нужно узнать, как называется завод, о котором идёт речь. Оказывается, что рабочие называют место своей работы названием, производным от названия города, в котором он расположен, — и это единственный логичный момент во всей истории. Официально завод называется совсем иначе. Более того, когда его проектировали, у него было другое официальное название, а фирма, взявшая подряд на его строительство, обозвала его по-своему, но тоже вполне официально. В документах свободно и вперемешку используются все четыре названия.
В 1998 году, в рамках программы по улучшению документооборота, заводу был присвоен уникальный идентификационный номер. Этим номером должны были помечаться все документы, касающиеся завода. В 2001 году, в рамках перехода на электронный документооборот, заводу был присвоен ещё один уникальный идентификационный номер, но уже другой. Неизвестно, какая именно система документооборота применялась в момент создания каждого отдельного документа; вдобавок, в документах то тут, то там упоминаются ссылки на ещё какие-то системы документооборота, о которых вообще нет никаких сведений. Более того, исходя из документов, невозможно сказать, является ли идентификатор, упомянутый в документе, идентификатором этого завода согласно инструкциям 1998 года, или идентификатором какого-то другого завода согласно инструкциям 2001 года — и наоборот.
В документах, использующих идентификатор 1998 года, постоянно мелькает указание на какой-то архив. Бумажный. Проблема в том, что, судя по адресу, он был расположен в здании, снесённом задолго до 1998 года. Это в какой-то степени объясняет, почему единственные документы, хранящиеся в цифровом виде, касаются техподдержки завода, а не его проектирования и разработки.
Методом повального телефонного обзванивания удалось найти древний сохранённый бэкап сервера электронной почты. Оттуда удалось выгрести какое-то количество электронных писем от людей из отдела разработки. В подписях этих электронных писем сохранился физический адрес. Там удалось найти информацию о библиотеке отдела разработки — бумажной, бумажной библиотеке! — которая, хвала богам, не пострадала во время всех перетасовок, а просто потерялась. Эту библиотеку нашли. В ней обнаружилось сколько-то документации о производстве полимеров, и даже копии некоторых инженерных чертежей завода, сделанных ради удобства отдела разработки. Огромные листы синей кальки и гигантские, пыльные, траченные плесенью скоросшиватели с выцветшими записями. На записях и кальках стоят печати, удостоверяющие, что с этих документов была снята цифровая копия; никто не знает, где эта цифровая копия сейчас.

Расшифровка документации

Ребята из отдельных кабинетов притаскивают груду расползающихся скоросшивателей, указывают на них инженерам и говорят: «Фас!» Инженеры пытаются найти «бутылочное горлышко». Получается плохо. Во-первых, документация далеко не полная, и документы сохранились не целиком, а во-вторых, она словно написана китайскими иероглифами. То есть несколько непонятна. Менеджер шутит о необходимости ввести в программу обучения курс «Инженерная археология», где студентов будут учить понимать технологический процесс, исходя из хреново сохранившихся документов тридцатилетней давности.
Инженеры не отчаиваются. Они находят древние учебники и, фактически, учатся заново, становясь инженерами образца 1980 года. Примерно так же действуют извращенцы, развлекающиеся электроникой с радиолампами: поскольку никто не возьмётся чинить такое убожество, им приходится учиться самостоятельно.
Некоторые из методик и форм записи привычны, некоторые давно устарели. Даже там, где официально ничего не изменилось, всё равно изменилось многое, потому что изменился сам критерий того, что необходимо задокументировать, а что можно не записывать, потому что каждый образованный человек будет это знать.

Обратный промышленный шпионаж

В какой-то момент один из менеджеров этой компании вышел на моего бывшего коллегу, который поддерживал со мной приятельские отношения. Это позволило компании обратиться к нам с предложением: не будем ли мы так любезны потратить немного нашего времени, чтобы проконсультировать компанию об этом чёртовом заводе? За адекватную плату, разумеется. «Адекватная плата» была в несколько раз выше моей прошлой зарплаты, а работа казалась интересной, поэтому я согласился.
Таким образом, я оказался нанятым компанией, чтобы объяснить ей, как её завод работает.
Я напрягся и припомнил некоторые детали тридцатилетней давности. Часть инженерных практик, применённых при проектировании этого завода, будь он неладен, я же сам и разработал. Более того, я имел представление о том, что является важным, а что нет, и как детали стыкуются друг с другом.
Примерно настолько же важным оказалось то, что у меня было немного документации. Нелегально.
Когда я ещё работал на фирму, нам приходилось часто переезжать из офиса в офис, и документы терялись. Иногда не было другого выбора, кроме как сидеть и ждать целыми днями, пока кто-нибудь с доступом пришлёт нужную бумажку, а для этого надо было ещё отследить нужную библиотеку и нужного человека. Параноики, заведующие службой безопасности компании, разработали драконовские правила доступа к секретной информации, то есть вообще ко всему, касающемуся полимеров, и это зверски осложнило жизнь при посещении офисов подрядчиков.
Поэтому мы разработали собственную практику под названием «не спрашивай, и нам не придётся врать». Мы делали частные копии документов и таскали их с собой. Инженеры вообще ненавидят сидеть и маяться бездельем, а наличие документации позволяло нам быстро приступить к работе. Это также позволяло нам сдавать проекты во-время, вместо того, чтобы объяснять, что мы не могли работать, потому что ждали факса с нужной информацией.
Моей задачей теперь было тайно вернуть документы фирме. Я был бы рад просто прийти в офис и отдать их клерку, но поступить так было нельзя. Эти документы де-юре были у компании, и даже в электронном виде, а у меня их де-юре не было и быть не могло. На самом деле, разумеется, всё было наоборот. Но компания просто не могла принять свои документы, которые у неё есть, от человека, у которого их нет.
Вместо этого, мы контрабандно пронесли их на территорию и тайно подбросили документы в корпоративный архив. В бумажном виде. Во время следующей инвентаризации контролёр, может быть, обнаружит документы без идентификационных номеров, внесёт их в базу документов и озаботится снятием электронной копии. Я очень надеюсь, что это в самом деле будет именно так, потому что вряд ли проживу ещё 30 лет, чтобы контрабандой пронести их в компанию снова.
А, ещё одна деталь. Я же нанятый внешний консультант-контрактник, помните? Мне по статусу не положено знать корпоративные секреты. Служба безопасности должна знать о движении секретной информации и предотвращать её попадание ко всяким пришлым. Проблема в том, что у них нет ни малейшего представления о секретах, а у меня есть. Более того, я их изобрёл, и патенты были выданы на моё имя. Тем не менее, мне нужно очень тайно и секретно пронести эти данные в фирму, чтобы служба безопасности о них узнала и смогла доблестно предотвратить мой доступ к этим тайнам.
Мы часто слышим о промышленном шпионаже. Я был бы рад почитать исследования явления обратного промышленного шпионажа, — когда компании забывают собственные секреты, и работники должны тайно, нелегально вернуть их. Я уверен, что это происходит значительно чаще, чем вы думаете.

Проблема имеет решение?

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

Статья взята здесь.

 


 


 




 

вторник, 21 июля 2015 г.

Массовое восстановление информационных баз 1С из бэкапов и прочие радости командной строки запуска «1С:Предприятия»


     В свое работе я время от времени сталкиваюсь с необходимостью восстановления информационных баз 1С из файлов выгрузки (*.dt - "дтэшников"). Такая необходимость может возникнуть, когда:
 - Необходимо развернуть информационные базы за определенный период группе аудиторов;
 - Когда у пользователя произошли непонятные изменения и требуется выяснить, когда эти изменения произошли;
 - Необходимо найти кусок кода, который изменился после обновления;
 - И т.п.
Итак, посыл понятен. Естественно, разворачивать базы вручную дело весьма скучное, а может быть еще и весьма требовательно к ресурсам, поэтому рекомендую посмотреть в сторону параметров запуска "1С:Предприятия"  (полный список параметров можно найти на сайте ИТС).
1С можно запустить в одном из трех режимов:

  • DESIGNER - Запуск в режиме Конфигуратора;
  • ENTERPRISE - Запуск в режиме Предприятия;
  • CREATEINFOBASE - Создание информационной базы.   

Остановимся подробнее на режиме CREATEINFOBASE. Данный параметр имеет следующий вид: CREATEINFOBASE <строка соединения> [/AddInList [Имя ИБ]] [/UseTemplate [имя файла шаблона]].

  • СтрокаСоединения - обязательный параметр, образуется из пар ИмяПараметра=Значение, разделённых символами точки с запятой (;). Если Значение содержит пробелы, оно должно быть заключено в двойные кавычки. Возможные параметры строки соединения: 

Для файлового варианта определен параметр:
        File - Каталог информационной базы.
Для клиент-серверного варианта определены параметры:
        Srvr - Имя сервера 1С:Предприятия. Для обеспечения бесперебойной работы клиентских приложений возможно указание нескольких адресов кластера через запятую, например: Srvr=”Server1,Server2” или Srvr=”Server1:1741,Server2:1741”;
        Ref - Имя информационной базы на сервере 1С:Предприятия;
        DBMS - Тип используемого сервера баз данных:
                MSSQLServer — Microsoft SQL Server (по умолчанию);
                PostgreSQL — PostgreSQL;
                IBMDB2 — IBM DB2;
                OracleDatabase — Oracle Database.
        DBSrvr - Имя SQL-сервера;
        DB - Имя SQL-базы данных;
        DBUID - Имя пользователя SQL-сервера;
        DBPwd - Пароль пользователя SQL-сервера. Если пароль для пользователя сервера баз данных не задан, то данный параметр можно не указывать;
        SQLYOffs - Смещение дат, используемое для хранения дат в SQL-сервере (Допустимые значения - 0 или 2000. По умолчанию - 0). Данный параметр определяет число лет, которое будет прибавляться к датам при их сохранении в базе данных Microsoft SQL Server и вычитаться при их извлечении. Наличие данного параметра определяется особенностями хранения дат в Microsoft SQL Server. Тип DATETIME, используемый в Microsoft SQL Server, позволяет хранить даты в диапазоне с 1 января 1753 года по 31 декабря 9999 года. И если при работе с информационной базой может возникнуть необходимость хранения дат, предшествующих нижней границе данного диапазона, то в качестве значения параметра следует выбрать 2000. Если же такие даты встречаться не будут, то в качестве смещения дат можно выбрать 0. После создания информационной базы значение данного параметра не может быть изменено. (ВНИМАНИЕ! Если в прикладном решении используются регистры накопления или регистры бухгалтерии, то в поле Смещение дат необходимо установить значение 2000);
        CrSQLDB - Создать базу данных в случае ее отсутствия ("y" - создавать базу данных в случае отсутствия, "n" - не создавать);
        SchJobDn - Запретить созданной информационной базе  выполнение регламентных созданий (Y/N). Значение по умолчанию — N;
        SUsr - Имя администратора кластера, в котором должен быть создан начальный образ. Параметр необходимо задавать, если в кластере определены администраторы и для них аутентификация операционной системы не установлена или не подходит;
        SPwd - Пароль администратора кластера.

  • /AddInList [ИмяИБ] - имя, под которым база добавляется в список. Если этот параметр не указан, база добавлена в список не будет. Если не указано ИмяИБ, будет задано имя по умолчанию (как при интерактивном создании базы).
  • /UseTemplate — создание информационной базы осуществляется по  шаблону, указанному в [имя файла шаблона]. В качестве шаблонов могут быть файлы конфигурации (.cf) или файлы выгрузки информационной базы (.dt). Если шаблон не указан, параметр игнорируется. 
  • /Out <Имя файла> [-NoTruncate] - установка файла для вывода служебных сообщений. Если задан параметр -NoTruncate (через пробел), файл не очищается (не используется в тонком клиенте). Во время исполнения пакетных команд файл сообщений можно открыть для просмотра. Запись сообщений в файл не буферизуется (сообщения записываются сразу).

Пример создания информационной базы на сервере 1С:Предприятия:
"C:\Program Files (x86)\1cv82\common\1cestart.exe" CREATEINFOBASE Srvr="Server1C";Ref="НоваяБаза";DB="НоваяБаза";DBMS="MSSQLServer";DBSrvr="Server1C";DBUID="sa";DBPwd="Passwords";CrSQLDB=Y;SchJobDn=Y /OUT "C:\Users\Администратор\Desktop\1c.log" /AddInList "НоваяБаза" /UseTemplate "C:\Users\Администратор\Desktop\Базы\Новая.dt"

Для автоматизации данной операции можно написать bat файл или воспользоваться любым знакомым языком программирования. Пример утилиты создания нескольких ИБ  из одного дтэшника на C# на гитхабе.


P.S. И помните: жизнь слишком коротка, чтобы делать что-то вручную.

суббота, 11 июля 2015 г.

Hellow world!

Наверное каждый школьник айтишник знаком с этой фразой и не раз именно с нее начиналось знакомство с новым языком программирования или технологией. Вот и я в очередной раз (и, поверьте мне, за мои 26 лет их было уже ох как предостаточно) пишу "Hello world".  И казалось бы доколе использовать эти примитивные шаблоны? Может пора уже сразу в омут с головой? Но нет, чувствую, что знакомство с blogger надо начать именно с "hellow world"! ОК, тогда начнем:

HELLOW Wonderful Wonderful World!!!

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

Кто я такой? Зовут меня Павел, а живу я в небольшом городке под названием Чита. Городок совсем небольшой (тысяч 300 населения) и располагается, как мне подсказывают google.map, в 6258,8 километрах  от нашей политической столицы и в 6750,7 километрах от нашей культурной столицы Санкт-Петербурга. И, конечно, такая отдаленность отложила на местных жителях определённый отпечаток. Вы все еще думаете, что самые суровые мужики живут в Челябинске? Хм, тогда мы идет к вам! Основной вид занятости в Чите это торговля. Продают все, что можно только продать. К слову, недавно китайцам продали отдали в аренду 115 тысяч гектаров земли. Чем заняться программисту в таком маленьком и индустриально неразвитом городе? - спросите вы. Ответов немного - это либо веб разработка, либо сисадминство в симбиозе с 1С. А так как мое чувство прекрасного далеко от прекрасного я выбрал 1С. Работаю я в организации, деятельность которой в какой-то степени связана с военными. Про Читу часто можно услышать: "Чита город дождей,блядей и воинских частей". Хотя последние годы здесь небывалая засуха и пожары, а про продажную любовь я ничего не знаю, но вот воинских частей здесь как грибов. Обычно, когда рассказываешь кому-то про Читу - это вызывает две реакции: либо человек не знает,  что это за город, либо - "О, я там служил!!!". 

Ну, вообщем-то, представительская часть закончена, да и пожалуй Helow world можно на этом заканчивать. Так что всем пока, до скорых!