Перейти к содержимому


Публикации nevmerzhitsky

24 публикаций создано nevmerzhitsky (учитываются публикации только с 21-Апрель 23)


#27270 Версия 2.0.4

Отправлено от nevmerzhitsky в 26 Февраль 2015 - 02:11 in Новые версии, новые возможности

Просмотр сообщенияCbCoder (24 Февраль 2015 - 14:57) писал:

Это не "новая логика", а баг, причем возникший скорее всего при попытке исправления другой проблемы. История исправления багов у нас не ведется на данный момент.
Если это баг, то почему сотрудница так подробно объясняла как нам теперь с ним жить?

от: Альбина <albina@basemaster.com>
дата: 12 февраля 2015 г., 10:30
Ответ по заявке № 9 509

Здравствуйте ! В версии 2.0.4 изменился принцип доступа к полям связи. Теперь если не стоят права на Экспорт у связанного поля, то оно будет недоступно для чтения в выпадающем списке.(скрин1)

То есть например для того чтобы список записей был доступным в поле «Город» таблицы «Отделения кредитных организаций» нужно у самого связанного поля на которое оно ведет проставить доступ на экспорт. У вас это поле «Наименование» таблицы «Населенные пункты»(скрин2)

Нужно перейти в настройки доступа таблицы «Населенные пункты» и проставить доступ на «Экспорт»(скрин3)

Тогда в выпадающем списке записи будут отображаться(скрин4).

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



#27229 Версия 2.0.4

Отправлено от nevmerzhitsky в 24 Февраль 2015 - 14:53 in Новые версии, новые возможности

А где описание технических изменений, влияющих на программистов? В частности, про новую логику выпадающих списков полей типа Связь? Такие анонсы вы не делаете?



#27181 Версия 2.0.3

Отправлено от nevmerzhitsky в 20 Февраль 2015 - 22:21 in Новые версии, новые возможности

Баг в работе экспорта

В последней версии (SAAS/2.0.4/15142/Premium) видимость вариантов значения выпадающего списка поля типа Связь стала зависеть от наличия доступа на Экспорт поля в целевой таблице. Почему-то разработчики КБ даже не удосужились в процедуре обновления данных автоматически прописать всем полям всех таблиц данный доступ, чтобы система работала как прежде. После двух часов обезьяньей работы я это сделал за них, и что в итоге? А в итоге в системе теперь следующий баг.

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

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

P.S. Заявку в техподдержку я отправил.
P.P.S. Почему нет топика и не было никакого уведомления с описанием обновления 2.0.4?!!



#27042 Bugs.clientbase.ru

Отправлено от nevmerzhitsky в 11 Февраль 2015 - 19:27 in Разработчикам

Просмотр сообщенияAnalitic (10 Январь 2013 - 12:00) писал:

В ближайшем будущем будут настроены:
1. Автоматическая регистрация в bugs.clientbase.ru для просмотра списка багов, для всех пользователей форума.
2. Уведомления о исправленых, подтвержденных багах на email для сторонних разработчиков.
10 Январь 2013 <_<



#27024 Ограничение доступа на редактирование шаблонов печати

Отправлено от nevmerzhitsky в 06 Февраль 2015 - 17:54 in Как это сделать

В конфигурации есть группа доступа Директор. Они имеют право добавлять шаблоны печати таблицы Бизнес-процессы. Каким образом я могу ограничить их права на редактирование шаблонов, чтобы они могли менять лишь те шаблоны, которые добавили сами?



#26965 Отличная программа, но техподдержка отстой!

Отправлено от nevmerzhitsky в 01 Февраль 2015 - 22:33 in Отзывы

Уже 3 дня не могу создать тикет в ТП через свою КБ на SaaS. После сабмита формы тикета отображается белая страница. При этом мне срочно нужно решение проблемы, вызванной вашими куцыми средствами отладки PHP кода во "внешних файлах" (не локализовать причину бага из-за отсутствия нормального бектрейса).

У меня техподдержка оплачена до 15-го февраля, но воспользоваться я ей не могу из-за вашей кривой формы создания тикета. Вы считаете, что нормально брать деньги за услугу, которую вы не оказываете? :angry:

Прикрепленные изображения

  • Прикрепленное изображение: New Bitmap Image.png



#26702 Создание пользователя с помощью вычисления.

Отправлено от nevmerzhitsky в 10 Декабрь 2014 - 17:57 in Как это сделать

Готовой функции для создания пользователя с определенной группой доступа (пароль может быть любым, пусть на почту отправляется) из PHP-кода по прежнему нет? Я использую SaaS версию.



#26462 Доп. действие во всплывающем окне с загрузкой файлов

Отправлено от nevmerzhitsky в 11 Ноябрь 2014 - 21:51 in Как это сделать

Итоговый рабочий код доп.действия может выглядеть следующим образом:
$errors = array();

if (empty($_FILES['myfiles']['name']['cc_scan'][0])) {
  $errors[] = 'Добавьте файлы со сканами нового кредитного договора!';
} else {
  foreach ($_FILES['myfiles']['error']['cc_scan'] as $i => $fileError) {
    if ($fileError != 0) {
      $errors[] = sprintf('Техническая ошибка при загрузке файла №%d: %d. Обратитесь к администратору.', $i + 1, $fileError);
    }
  }
}

if (! empty($errors)) {
  throw new Exception($errors);
}

$fileNames = array();
foreach ($_FILES['myfiles']['name']['cc_scan'] as $i => $fileName) {
  $fileName = trim($fileName);
  $fileNames[] = $fileName;
  $data = file_get_contents($_FILES['myfiles']['tmp_name']['cc_scan'][$i]);
  save_data_file(12961, $line['ID'], $fileName, $data);
}

$data = array(
  'Скан нового КД' => trim($line['Скан нового КД'] ."\r\n". implode("\r\n", $fileNames)),
);
update_query($data, 'Кредитные договоры', "`ID`={$line['ID']}");

12961 это идентификатор поля "Скан нового КД".

HTML-код с формой загрузки файла:
<form method="post" enctype="multipart/form-data">
  <input type="hidden" name="id" value="<?php echo $_REQUEST['id']; ?>">
  <input type="hidden" name="line_id" value="<?php echo $line['ID']; ?>">
  <input type="hidden" name="csrf" value="<?php echo $GLOBALS['csrf']; ?>">
  <p><label>
	<span>Скан нового КД:</span>
	<input type="file" name="myfiles[cc_scan][]" size="20" multiple="multiple">
  </label></p>
  <p><input type="submit" value="Сохранить"></p>
</form>



#26375 Показ/скрытие полей через JavaScript

Отправлено от nevmerzhitsky в 23 Октябрь 2014 - 03:49 in Как это сделать

Просмотр сообщенияwondertalik (26 Август 2014 - 12:17) писал:

Если я скрываю, показываю поле через js. Можно ли через Js включать/отключать "Обязательно для редактирования". Если да - то как?

Корявый код проверки обязательности в частности проверяет значение следующего скрытого поля формы:
<input type="hidden" id="main12091" value="1">
на value == 1 (значение id разумеется содержит идентификатор поля). То есть, по умолчанию для всех обязательных полей этот тег присутствует в теле страницы со значением 1, для необязательных этого тега нет вообще. Следовательно, если хотите убрать обязательность, то измените value этого тега на 0, а если сделать обязательным - добавьте этот тег с value=1 куда-нибудь в DOM.

Разработчики КБ, в теле страницы для каждого обязательного поля присутствует тег вида <input type='hidden' id="type_value12091" value='5'>, но в JS используется значение из all_fields[...]['type_field'], значит этот тег - мусор. А также в массиве all_fields элемент type_value всегда имеет значение '$one_field.type_value_js', что явно баг подстановки из PHP (да и зачем этот элемент нужен, если вы работаете с type_field).



#26237 Отмена добавления записи на уровне PHP

Отправлено от nevmerzhitsky в 26 Сентябрь 2014 - 03:18 in Как это сделать

Необходимо отменять добавление записи в таблицу по результату проверок в PHP.

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



#26223 Событие пост-удаления

Отправлено от nevmerzhitsky в 24 Сентябрь 2014 - 14:48 in Как это сделать

Просмотр сообщенияCbCoder (24 Сентябрь 2014 - 08:40) писал:

Если речь об удалении в корзину (в "удаленные"), то можно использовать событие на изменение поля "Статус записи" - оно сработает уже после перемещения в удаленные. В самом коде нужно добавить условие if ($line['Статус записи'] = 2):

if ($line['Статус записи'] = 2) {
   // ваш код при удалении в корзину
}

Спасибо, такое решение подходит.



#26213 Событие пост-удаления

Отправлено от nevmerzhitsky в 24 Сентябрь 2014 - 04:18 in Как это сделать

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



#25975 Форматирование даты Smarty (русская локализация)

Отправлено от nevmerzhitsky в 03 Сентябрь 2014 - 13:48 in Предложения по доработке

Просмотр сообщенияCbCoder (26 Август 2013 - 09:57) писал:

В КБ есть своя функция для вывода даты прописью, {DataPropis field=поле [format="формат даты"]}. Локализация из самого smarty все равно не подойдет, т.к. в переменной поля дата выводится в местном формате, smarty ее не разберет.

Подробнее здесь, к примеру.
В каком формате эта функция ожидает дату? Полученные из БД "2014-02-19 00:00:00" и "2014-02-19" она не хавает, выводит 1 января 1970. Например: {DataPropis field="2012-01-01"}



#25974 Произвольный SQL-запрос из Smarty-шаблона

Отправлено от nevmerzhitsky в 03 Сентябрь 2014 - 13:19 in Как это сделать

Рабочее решение описано в http://clientbase.ru...indpost&p=25973



#25973 Шаблон печати для таблицы

Отправлено от nevmerzhitsky в 03 Сентябрь 2014 - 13:17 in Как это сделать

Вот в таком виде всё заработало, но пришлось убить часов 5 на то, чтобы достичь результата. Причем половину времени на то, чтобы починить ваш визуальный редактор (во время редактирования шаблона), который напрочь вылетал при некотором корректном стечении HTML-тегов. *рукалицо*
<table border="0" style="border-collapse: collapse;">
  <tbody>
   <tr>
    <td colspan="1">
	 {$contracts=data_table('Кредитные договоры', "`f6831`={$Клиент.ID} AND `status`=0", 'all')}{$i=1}</td>
    <td colspan="1">
	 {foreach from=$contracts name="Позиции акта" item=subtable}</td>
   </tr>
   <tr>
    <td style="border-style: solid; border-color: rgb(186, 186, 186);">
	 {$i++}. {$subtable['Номер кредитного договора']}</td>
   </tr>
   <tr>
    <td colspan="1">
	 {/foreach}</td>
   </tr>
  </tbody>
</table>



#25969 Шаблон печати для таблицы

Отправлено от nevmerzhitsky в 03 Сентябрь 2014 - 12:07 in Как это сделать

Просмотр сообщенияCbCoder (03 Сентябрь 2014 - 11:37) писал:

Да, на данный момент это никак не сделать скорее всего. Если бы Договора были подтаблицей Кредитных договоров - это бы решилось штатными средствами, но здесь не та ситуация.
Ну конечно же договоры это подтаблица клиентов, но стандартными средствами это не решается, потому что в шаблон печати ДОГОВОРА нельзя вставить цикл по ДОГОВОРАМ КЛИЕНТА, на которого ссылается запись таблицы договоров. Ваш редактор шаблонов такой переменной для итерации не предоставляет. Поэтому я и пытаюсь сделать выборку вручную по айдишнику клиента (в примерах кода я даже без айди клиента пытаюсь делать выборку и она не работает).



#25959 Произвольный SQL-запрос из Smarty-шаблона

Отправлено от nevmerzhitsky в 03 Сентябрь 2014 - 11:30 in Как это сделать

wondertalik, вы неверно поняли задачу, подтаблицей договоры уже являются. перечитайте второй абзац.



#25947 Произвольный SQL-запрос из Smarty-шаблона

Отправлено от nevmerzhitsky в 03 Сентябрь 2014 - 01:14 in Как это сделать

Подскажите, как решить задачу?
Есть таблицы Кредитные договоры и Клиенты, у клиента может быть множество договоров. Есть шаблон для печати в Кредитных договорах, в котором нужно вывести в виде таблицы все договоры клиента, но редактор шаблона не предоставляет такой возможности.
Пытался сделать выборку нужных данных из таблиц через {php} в смарти прямо в теле шаблона (по примеру из http://www.smarty.ne...unction.php.tpl), но на это получил эксепшен "{php} is deprecated, set allow_php_tag = true to enable". Включить эту опцию для шаблона ваша система не позволяет. $php_handling у вас также не SMARTY_PHP_ALLOW. Зачем заблокирована вставка PHP-кода в шаблон, я понять не могу, если вы не даете возможность подготовить PHP-переменные перед выводом шаблона ... Попытка вызвать php-функцию из шаблона также провалилась. Пробую сделать выборку прямо в foreach:
{foreach from={data_table('Кредитные договоры', "`status`=0", 'all')} item=item key=key}</p>
[key={$key}]
[item={$item}]
[id1={$item.id}]
[id2={$item.ID}]
[Номер кредитного договора={$item['Номер кредитного договора']}]
{/foreach}

Но отображается в итоге странный текст "[key=0] [item=Array] [id1=A] [id2=A] [Номер кредитного договора=A]" (лишь одна итерация). Хотя результат выполнения данной функции на чистом PHP содержит 988 элементов:
array(988) {
[0]=>
array(47) {
["ID"]=>
string(1) "6"
["Кто добавил"]=>
string(3) "101"
["Время добавления"]=>
string(19) "2014-05-08 22:59:00"
["Статус записи"]=>
string(1) "0"
["Номер кредитного договора"]=>
string(16) "213123-АВ-2313"
}
...
}

И как в таком положении дел мне решить поставленную задачу?



#25922 Шаблон печати для таблицы

Отправлено от nevmerzhitsky в 27 Август 2014 - 14:14 in Как это сделать

Пробую сделать выборку прямо в foreach:
{foreach from={data_table('Кредитные договоры', "`status`=0", 'all')} item=item key=key}</p>
[key={$key}]
[item={$item}]
[id1={$item.id}]
[id2={$item.ID}]
[Номер кредитного договора={$item['Номер кредитного договора']}]
{/foreach}

Но отображается в итоге странный текст "[key=0] [item=Array] [id1=A] [id2=A] [Номер кредитного договора=A]" (лишь одна итерация). Хотя результат выполнения данной функции на чистом PHP содержит 988 элементов:
array(988) {
  [0]=>
  array(47) {
	["ID"]=>
	string(1) "6"
	["Кто добавил"]=>
	string(3) "101"
	["Время добавления"]=>
	string(19) "2014-05-08 22:59:00"
	["Статус записи"]=>
	string(1) "0"
	["Номер кредитного договора"]=>
	string(16) "213123-АВ-2313"
  }
  ...
}



#25921 Шаблон печати для таблицы

Отправлено от nevmerzhitsky в 27 Август 2014 - 13:50 in Как это сделать

Подскажите, как решить задачу?
Есть таблицы Кредитные договоры и Клиенты, у клиента может быть множество договоров. Есть шаблон для печати в Кредитных договорах, в котором нужно вывести в виде таблицы все договоры клиента, но редактор шаблона не предоставляет такой возможности.
Пытался сделать выборку нужных данных из таблиц через {php} в смарти прямо в теле шаблона (по примеру из http://www.smarty.ne...unction.php.tpl), но на это получил эксепшен "{php} is deprecated, set allow_php_tag = true to enable". Включить эту опцию для шаблона ваша система не позволяет. $php_handling у вас также не SMARTY_PHP_ALLOW. Зачем заблокирована вставка PHP-кода в шаблон, я понять не могу, если вы не даете возможность подготовить PHP-переменные перед выводом шаблона ... Но как в таком положении дел мне решить поставленную задачу?



#25891 Режим эксперта для правил

Отправлено от nevmerzhitsky в 21 Август 2014 - 01:39 in Предложения по доработке

Изучая дамп, наткнулся на таблицу f_acc_rules, где виден сериализованный PHP-код логического условия срабатывания правила. Его изменение администратором через интерфейс КБ представлено лишь в виде набора выпадающих списков.
А хочется иметь возможность перейти в режим мастера и править PHP-код условий! Тогда появится возможность подключать сторонние файлы и делать проверку доступа сколь угодно глубокой. Этого очень не хватает в моей конфигурации! Могу привести пример задачи ограничения доступа, решение которой в текущей системе порождает множество кропотливой унылой работы, которая ещё и сыпется при малейшем изменении бизнес-требований и многое приходится переделывать.

Скрин дампа: Прикрепленное изображение: cb_rules.png



#25872 Условное отображение кнопки Распечатать

Отправлено от nevmerzhitsky в 20 Август 2014 - 03:01 in Как это сделать

Отлично работает, то что нужно, спасибо, MorTis!



#25858 Условное отображение кнопки Распечатать

Отправлено от nevmerzhitsky в 17 Август 2014 - 21:48 in Как это сделать

Необходимо сделать условие, влияющее на отображение конкретного шаблона в кнопке Распечатать. Например, если $line['Тип'] == "услуга", то выводим кнопку шаблона печати "Услуга", иначе её прячем.
У меня бизнес-процесс предполагает, что на по данным одной таблицы может оказываться несколько разных юридических услуг. И то, какая именно услуга доступна пользователю КБ, зависит от некоторых условий. Доступ к записи таблицы у него уже есть, а вот к услуге может не быть - тогда нужно прятать шаблон для печати. Это возможно в КБ? Или придется разделять таблицу на несколько по числу услуг? При этом у этих таблиц будет одинаковая структура и семантика - это отвратительное решение. Может у кого есть другие идеи решения?



#25434 Ручная фильтрация поля типа Связь

Отправлено от nevmerzhitsky в 27 Июль 2014 - 12:51 in Как это сделать

Есть четыре таблицы:
  • Режимы оплаты счета
  • Прайс-лист
  • Счета
  • Позиции счета (подтаблица Счета)
Таблица [Режимы оплаты] счета содержит лишь одно поле - Название. Таблицы Счета и [Прайс-лист] имеют поле [Режим оплаты] типа связь, который ссылается на первую таблицу. В бизнес-процессе от режима оплаты зависит то, сколько будут стоить услуги и товары: сразу дешевле, в рассрочку - дороже. Поэтому в [Прайс-лист] каждая запись создана два раза: со стоимостью "сразу" и со стоимостью "в рассрочку":
Услуга
Подготовка искового заявления
При выписке
шт.

5 000,00


Услуга
Подготовка искового заявления
В рассрочку
шт.

6 000,00



Счет содержит поле [Режим оплаты] для того, чтобы отфильтровать записи Прайс-листа по нему и убрать возможность добавлять в [Позиции счета] позиции Прайс-листа с другим режимом оплаты. Подтаблица [Позиции счета] содержит поле [Позиция прайс-листа], ссылающаяся на [Прайс-лист].ID.

Необходимо ограничить допустимые значения поля [Позиции счета].[Позиция прайс-листа] в зависимости от значения поля Счета.[Режим оплаты]. Возможно ли это сделать в вычислениях поля [Позиции счета].[Позиция прайс-листа]?