

псчезающие ед.изм. в "позиции счета"
Автор goodcolor, 11 февр. 2013 10:38
Сообщений в теме: 12
#1
Отправлено 11 Февраль 2013 - 10:38
Такой момент.
В подтаблице "позиции счета" есть поле типа список "ед.изм.".
Существует вычисление, которое при выборе в поле "тип" из списка "прайс-лист" и при выборе из списка поля "наименование" позицию номенклатуры подставляет в поле "ед.изм." значение из поля "Номенклатура" "ед.изм." соответсвующее позиции номенклатуры.
Но после сохранения и очередного открытия счета для редактирования или просто обновления поле "позиции счета" "ед.изм." превращается в пустое поле со списком единиц измерения.
Каким образом можно это исправить?
В подтаблице "позиции счета" есть поле типа список "ед.изм.".
Существует вычисление, которое при выборе в поле "тип" из списка "прайс-лист" и при выборе из списка поля "наименование" позицию номенклатуры подставляет в поле "ед.изм." значение из поля "Номенклатура" "ед.изм." соответсвующее позиции номенклатуры.
Но после сохранения и очередного открытия счета для редактирования или просто обновления поле "позиции счета" "ед.изм." превращается в пустое поле со списком единиц измерения.
Каким образом можно это исправить?
Компания "Хороший Цвет"
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов
#2
Отправлено 11 Февраль 2013 - 10:48
Проверьте, не стоит ли какого-либо вычисления не отображение поля "ед.изм.". Если да - отключите его.
#3
Отправлено 11 Февраль 2013 - 15:55
Я не вижу такого вычисление.
Единственное, что работает с этим полем в этой таблице это вычисление, которое выполняется при изменении поля "наименование"
Единственное, что работает с этим полем в этой таблице это вычисление, которое выполняется при изменении поля "наименование"
if ($line['Тип'] == "Прайс-лист") { if ($line['Позиция номенклатуры']['Категория'] == "Товар") { $sqlQuery = "SELECT `f1099` FROM `".DATA_TABLE."85` WHERE `f1096`='".$line['Позиция номенклатуры']['raw']."' AND `status`<>'2'"; $result = sql_query($sqlQuery) or user_error(mysql_error()."<br>".$sqlQuery."<br>", E_USER_ERROR); $row = mysql_fetch_assoc($result); $line['Цена'] = $row['f1099']; $sqlQuery = "SELECT `f1100` FROM `".DATA_TABLE."85` WHERE `f1096`='".$line['Позиция номенклатуры']['raw']."' AND `status`<>'2'"; $result = sql_query($sqlQuery) or user_error(mysql_error()."<br>".$sqlQuery."<br>", E_USER_ERROR); $row = mysql_fetch_assoc($result); $line['Наличие'] = $row['f1100']; } else $line['Цена'] = $line['Позиция номенклатуры']['Стоимость работ']; $line['Описание'] = $line['Позиция номенклатуры']['Наименование']; $line['Ед. изм'] = $line['Позиция номенклатуры']['Ед. изм.']; }
Компания "Хороший Цвет"
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов
#4
Отправлено 11 Февраль 2013 - 16:16
Тогда странно, значение в поле не может само по себе пропасть, только в результате вычислений. Отправьте заявку в техподдержку с бэкапом, проверим в чем дело. Вышеприведенное вычисление вроде корректно и само по себе не должно на это влиять.
#5
Отправлено 13 Февраль 2013 - 10:12
С техподдержкой пока выяснить решение не удалось. Параллельно здесь буду обсуждать...
Может быть проблема в условии выполнения вычисления? У меня стоит "сохранение в таблице", "отображение поля тип", "изменение поля позиция номенклатуры".
Такое происходит во всех остальных подчинённых таблицах в том числе.
Может быть проблема в условии выполнения вычисления? У меня стоит "сохранение в таблице", "отображение поля тип", "изменение поля позиция номенклатуры".
Такое происходит во всех остальных подчинённых таблицах в том числе.
Компания "Хороший Цвет"
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов
#6
Отправлено 13 Февраль 2013 - 11:10
Вы же писали выше что вычисление у вас только на изменение поля? Я ведь говорил что нужно отключить вычисления на отображение, если они есть и меняют при этом поле "ед.изм."
#7
Отправлено 13 Февраль 2013 - 15:55
Я уже сам запутался.
Сейчас перестало отображаться поле тип и ввод номенклатуры. Ничего не делал такого сам...
В общем в "позиции счета" есть 3 вычисления: "сумма", "поле наименования", "данные номенклатуры".
"сумма" здесь вроде бы никак не участвует.
"поле наименование" срабатывает при "сохранение в таблице", "изменение поля тип", "отображение поля наименование"
Выключаю условие "отображение поля наименование" и происходит то же самое, что с "ед. изм" (исчезают после обновления страницы и сохранения в таблице)
Вычисление "данные номенклатуры" стандартно выполняется при условии "изменения поля позиция номенклатуры"
Для того, чтобы выводились в таблице остатки на складе я добавил в вычисление "данные номенклатуры" следующий код:
Такая сейчас картина...
Сейчас перестало отображаться поле тип и ввод номенклатуры. Ничего не делал такого сам...
В общем в "позиции счета" есть 3 вычисления: "сумма", "поле наименования", "данные номенклатуры".
"сумма" здесь вроде бы никак не участвует.
"поле наименование" срабатывает при "сохранение в таблице", "изменение поля тип", "отображение поля наименование"
Выключаю условие "отображение поля наименование" и происходит то же самое, что с "ед. изм" (исчезают после обновления страницы и сохранения в таблице)
if ($line['Тип'] == "Прайс-лист") { $sqlQuery = "SELECT * FROM `".FIELDS_TABLE."` WHERE `id`='1162'"; $result = sql_query($sqlQuery) or user_error(mysql_error()."<br>".$sqlQuery."<br>", E_USER_ERROR); $row = mysql_fetch_assoc($result); $line['Наименование'] = get_control($row, $line, $line['Позиция номенклатуры']['Наименование']); //$line['Описание'] = ''; } else { $sqlQuery = "SELECT * FROM `".FIELDS_TABLE."` WHERE `id`='808'"; $result = sql_query($sqlQuery) or user_error(mysql_error()."<br>".$sqlQuery."<br>", E_USER_ERROR); $row = mysql_fetch_assoc($result); $line['Наименование'] = get_control($row, $line, $line['Описание']); $line['Позиция номенклатуры'] = ''; }
Вычисление "данные номенклатуры" стандартно выполняется при условии "изменения поля позиция номенклатуры"
if ($line['Тип'] == "Прайс-лист") { if ($line['Позиция номенклатуры']['Категория'] == "Товар") { $sqlQuery = "SELECT `f1099` FROM `".DATA_TABLE."85` WHERE `f1096`='".$line['Позиция номенклатуры']['raw']."' AND `status`<>'2'"; $result = sql_query($sqlQuery) or user_error(mysql_error()."<br>".$sqlQuery."<br>", E_USER_ERROR); $row = mysql_fetch_assoc($result); $line['Цена'] = $row['f1099']; } else $line['Цена'] = $line['Позиция номенклатуры']['Стоимость работ']; $line['Описание'] = $line['Позиция номенклатуры']['Наименование']; $line['Ед. изм'] = $line['Позиция номенклатуры']['Ед. изм.']; }
Для того, чтобы выводились в таблице остатки на складе я добавил в вычисление "данные номенклатуры" следующий код:
$sqlQuery = "SELECT `f1100` FROM `".DATA_TABLE."85` WHERE `f1096`='".$line['Позиция номенклатуры']['raw']."' AND `status`<>'2'"; $result = sql_query($sqlQuery) or user_error(mysql_error()."<br>".$sqlQuery."<br>", E_USER_ERROR); $row = mysql_fetch_assoc($result); $line['Наличие'] = $row['f1100'];
Такая сейчас картина...
Компания "Хороший Цвет"
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов
#8
Отправлено 13 Февраль 2013 - 16:12
Вы вообще вносили какие-то изменения в подтаблицу "Позиции счета"? Имею ввиду настройки самой таблицы, ее полей, вычислений? Если нет - зайдите на demo.clientbase.ru и проверьте, повторяется ли там эта ошибка. Если повторяется - напишите здесь или в заявке в техподдержку.
#9
Отправлено 13 Февраль 2013 - 16:23
В Demo ед.изм. сохраняются как надо.
Изменение делал одно, вывод в таблице поля "Остаток", код написал выше.
Изменение делал одно, вывод в таблице поля "Остаток", код написал выше.
Компания "Хороший Цвет"
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов
#10
Отправлено 13 Февраль 2013 - 16:32
$line['Ед. изм'] = $line['Позиция номенклатуры']['Ед. изм.'];
Это нормально, что в таблице "позиции счета" поле Ед. изм с одним набором единиц в списке, а в поле Ед. изм. таблицы Позиции номенклатуры список с другим набором единиц (из последнего берутся единицы при выборе из "прайс-листа")
Фактически это не правильно, должен быть один список с Ед.изм. из ОКЕИ. Может быть эта разница влияет как-то, т.к. список стандартный в позициях номенклатуры изменялся...
Это нормально, что в таблице "позиции счета" поле Ед. изм с одним набором единиц в списке, а в поле Ед. изм. таблицы Позиции номенклатуры список с другим набором единиц (из последнего берутся единицы при выборе из "прайс-листа")
Фактически это не правильно, должен быть один список с Ед.изм. из ОКЕИ. Может быть эта разница влияет как-то, т.к. список стандартный в позициях номенклатуры изменялся...
Компания "Хороший Цвет"
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов
#11
Отправлено 13 Февраль 2013 - 16:57
А, ну вот собственно и разгадка. Списки не совпадают, именно поэтому после обновления страницы значение исчезает.
#12
Отправлено 13 Февраль 2013 - 17:22
Так, хорошо.
Действительно в этом загвоздка.
Значит если я хочу добавить единицу измерения кв.м, то я добавляю её во все списки такого типа и в вычисления для определения кода ед.изм в документе (счет-фактура).
Верно?
Нельзя это поменять только в одном месте?
Действительно в этом загвоздка.
Значит если я хочу добавить единицу измерения кв.м, то я добавляю её во все списки такого типа и в вычисления для определения кода ед.изм в документе (счет-фактура).
Верно?
Нельзя это поменять только в одном месте?
Компания "Хороший Цвет"
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов
#13
Отправлено 14 Февраль 2013 - 10:25
Да, так. Разместить в одном месте можно, если заменить список на таблицу-справочник, и тип поля (везде) на связь с этим справочником.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных