вторник, 3 марта 2015 г.
четверг, 26 февраля 2015 г.
Запрет ввода на основании
Иногда возникает потребность отменить ввод документа на основании другого по каким-то условиям. К сожалению нормального решения в данном вопросе нет, т.к. в процедуре модуля "ОбработкаЗаполнения" не передается параметр "Отказ", т.е. в самой обработке, что-бы вы не сделали форма документа откроется, а там уже проверять поздно. Одним из решений является создание своей кнопки в документе основания, и там выполнять проверку на нужные условия. Данное решение имеет один минус. если таких документов будет много, то такие изменения нужно будет ввести во все документы.
суббота, 14 февраля 2015 г.
Создание конфигурации с любым релизом.
Поскольку мне часто приходится работать с разными клиентами, и у каждого свой релиз конфигурации. Регулярно появляется потребность создать пустую базу или получить демо-базу, по релизу клиента. Но вся сложность заключается в том что фирма 1С выпускает установочные конфигурации не так часто. Да и для компаний не франчайзи, доступ открыт только к обновлениям. А получить дистрибутив с которого можно будет развернуть демо-базу это только прерогатива фирм франчайзи.
Т.е здесь политика 1С такова, что когда вы покупаете конфигурацию от 1С Вам предоставляется Setup текущей версии, а дальше только update. И если Вы захотите создать новую пустую или демо базу, то Вам придется немного постараться, что-бы получить нормальную конфигурацию с последним релизом.
Раньше я хранил cf файлы от тех релизов с которыми мне приходилось работать. И когда появлялась потребность получить пустую или демо базу заданного релиза. Мне приходилось разворачивать ближайшую базу к требуемому релизу, а потом обновлять конфигурацию имеющимся cf файлом. получалось не совсем удобно, так как при таких действиях могли вылезать подводные камни.
Т.е здесь политика 1С такова, что когда вы покупаете конфигурацию от 1С Вам предоставляется Setup текущей версии, а дальше только update. И если Вы захотите создать новую пустую или демо базу, то Вам придется немного постараться, что-бы получить нормальную конфигурацию с последним релизом.
Раньше я хранил cf файлы от тех релизов с которыми мне приходилось работать. И когда появлялась потребность получить пустую или демо базу заданного релиза. Мне приходилось разворачивать ближайшую базу к требуемому релизу, а потом обновлять конфигурацию имеющимся cf файлом. получалось не совсем удобно, так как при таких действиях могли вылезать подводные камни.
вторник, 30 декабря 2014 г.
Что делать если некорректно работает метод ПроверитьВывод
Всем привет. Сегодня я столкнулся с достаточно недокументированой особеностью платформы. А именно при формировании печатной формы некооректно отрабатывал метод ПроверитьВывод. Суть проблеммы заключалась в том что табличный документ не влезал на страницу, и последние две строчки печатались на отдельном листе. Решив, что я что-то напутал в коде я все проверил, естественно ни чего особенного в нем не нашел. Поскольку проблемма была не решена, а решить ее требовалось, я готов был прикрутить костыль, а именно перед началом вывода документа увеличить поля табличного документа, а после вывести документы с нормальными полями, к сожалению,а может быть и к счастью(так как в дальнейшем, была найдена и устранена данная ошибка), эту проблему таким способом решить не удалось. Документ по прежнему печатался как и раньше, т.е вылезал за область документа.
Еще раз изучив код вывода документа, Я обратил внимание на строчку:
ТабДокумент.ИмяПараметровПечати = "ИмяПечатнойФормы";
Все дело оказалось в свойстве табличного документа КлючПараметровПечати или ИмяПараметровПечати. Как оказалось при установке данного свойства настройки печатной формы тут же восстанавливаются. После того как я изменил имя печатной формы, метот ПроверитьВывод заработал корректно.
Таким образом данное свойство следует устанавливать не в начале процедуры вывода на печать а в конце.
Еще раз изучив код вывода документа, Я обратил внимание на строчку:
ТабДокумент.ИмяПараметровПечати = "ИмяПечатнойФормы";
Таким образом данное свойство следует устанавливать не в начале процедуры вывода на печать а в конце.
понедельник, 25 августа 2014 г.
Отсутствует отображение для типа '{http://v8.1c.ru/8.1/data/core}ValueTable'
Добрый день. Сегодня наступил на интересные грабли:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: param Форма: Элемент Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа '{http://v8.1c.ru/8.1/data/core}ValueTable'
Подобная ошибка возникает при попытке передать с клиента на сервер таблицу значений, и это мне давно известно, однако я получил эту ошибку без явной передачи таблицы. Вот часть кода с которым произошла ошибка:
воскресенье, 17 августа 2014 г.
Установка 1С на ubuntu 10.04
Увеличиваем максимальный размер сегмента памяти до 1Гб. Для менее мощных машин устанавливают от 64Мб до половины объема ОЗУ (для теста выделим 1Gb):
# echo "kernel.shmmax=1073741824" >>/etc/sysctl.conf
# sysctl -p
Генерируем русскую локаль и задаем переменную среды LANG, именно с ней будет работать скрипт инициализации базы данных.
# locale-gen en_US ru_RU ru_RU.UTF-8
# export LANG="ru_RU.UTF-8"
Устанавливаем необходимые зависимости:
# apt-get install imagemagick
Ставим все необходимые пакеты (1c берем с их офф.сайта):
dpkg -i 1c-enterprise83-common_8.3.4-476_amd64.deb
dpkg -i 1c-enterprise83-server_8.3.4-476_amd64.deb
dpkg -i 1c-enterprise83-ws_8.3.4-476_amd64.deb
dpkg -i 1c-enterprise83-common-nls_8.3.4-476_amd64.deb
dpkg -i 1c-enterprise83-server-nls_8.3.4-476_amd64.deb
dpkg -i 1c-enterprise83-ws-nls_8.3.4-476_amd64.deb
Заходим в консоль из windows и создаем новую базу
Устанавливаем apache
apt-get install apache2
Добавляем в httpd.conf необходимые данные о базе данных, с помощью скрипта webinst, входящего в состав пакета 1С сервера. Для этого переходим в каталог:
Консоль:
cd /opt/1C/v8.3/i386
Запускаем скрипт с необходимыми параметрами:
Консоль:
./webinst -apache22 -wsdir base -dir '/var/www/base' -connStr 'Srvr="1cserver";Ref="base";' -confPath /etc/apache2/httpd.conf
Где base - имя БД к которой настраиваем доступ, 1cserver - имя сервера на котором установлен 1С сервер.
Устанавливаем необходимые пакеты для работы(шрифты):
apt-get install ttf-mscorefonts-installer
# echo "kernel.shmmax=1073741824" >>/etc/sysctl.conf
# sysctl -p
Генерируем русскую локаль и задаем переменную среды LANG, именно с ней будет работать скрипт инициализации базы данных.
# locale-gen en_US ru_RU ru_RU.UTF-8
# export LANG="ru_RU.UTF-8"
Устанавливаем необходимые зависимости:
# apt-get install imagemagick
Ставим все необходимые пакеты (1c берем с их офф.сайта):
dpkg -i 1c-enterprise83-common_8.3.4-476_amd64.deb
dpkg -i 1c-enterprise83-server_8.3.4-476_amd64.deb
dpkg -i 1c-enterprise83-ws_8.3.4-476_amd64.deb
dpkg -i 1c-enterprise83-common-nls_8.3.4-476_amd64.deb
dpkg -i 1c-enterprise83-server-nls_8.3.4-476_amd64.deb
dpkg -i 1c-enterprise83-ws-nls_8.3.4-476_amd64.deb
Заходим в консоль из windows и создаем новую базу
Устанавливаем apache
apt-get install apache2
Добавляем в httpd.conf необходимые данные о базе данных, с помощью скрипта webinst, входящего в состав пакета 1С сервера. Для этого переходим в каталог:
Консоль:
cd /opt/1C/v8.3/i386
Запускаем скрипт с необходимыми параметрами:
Консоль:
./webinst -apache22 -wsdir base -dir '/var/www/base' -connStr 'Srvr="1cserver";Ref="base";' -confPath /etc/apache2/httpd.conf
Где base - имя БД к которой настраиваем доступ, 1cserver - имя сервера на котором установлен 1С сервер.
Устанавливаем необходимые пакеты для работы(шрифты):
apt-get install ttf-mscorefonts-installer
воскресенье, 10 августа 2014 г.
Удаление 1С на сервере linux(Ubuntu)
Иногда возникают ситуации, когда необходимо удалить уже установленный пакет 1С.
Для того что-бы посмотреть уже установенные пакеты от 1С необходимо выполнить команду:
dpkg -l | grep 1c-enterprise
Соответственно для удаление пакета необходимо воспользоваться командой :
dpkg -r <имя пакета>
Внимание, некоторые пакеты имеют зависимости, при удалении которых выдается соответствующее сообщение c именем пакета. Следовательно Вам будет необходимо удалить сначала зависимый пакет, а потом основной.
Если вы хотите удалить сервер 1С вместе с конфигурационными файлами, Вам необходимо будет воспользоваться командой(пример для 8.3)
dpkg --purge 1c-enterprise83-server
Для того что-бы посмотреть уже установенные пакеты от 1С необходимо выполнить команду:
dpkg -l | grep 1c-enterprise
Соответственно для удаление пакета необходимо воспользоваться командой :
dpkg -r <имя пакета>
Внимание, некоторые пакеты имеют зависимости, при удалении которых выдается соответствующее сообщение c именем пакета. Следовательно Вам будет необходимо удалить сначала зависимый пакет, а потом основной.
Если вы хотите удалить сервер 1С вместе с конфигурационными файлами, Вам необходимо будет воспользоваться командой(пример для 8.3)
dpkg --purge 1c-enterprise83-server
Подписаться на:
Сообщения (Atom)
