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


Фильтр связанного поля в тодтаблице


Сообщений в теме: 14

#1 mak

    Активный участник

  • Активный пользователь
  • PipPipPip
  • 207 сообщений

Отправлено 18 Март 2011 - 00:01

Есть таблица "товары", записи из которой привязаны к таблице "позиции счета".
Возможно фильтровать список товаров по полю, которое находится в счете?
При условии что во время добавления позиции счета, сам счет сохранен!

таблица товары:
1 склад1 товар1
2 склад1 товар2
3 склад2 товар1
4 склад2 товар2

таблица счет содержит поле склад.

в таблицу позиции счета мы добавляем товары с определенного склада.


вопрос в продолжение темы http://clientbase.ru...?showtopic=2514
сейчас идея состоит в том, чтобы сначала сохранить счет, а уже потом из него подтягивать значение склада в фильтр для товаров.
но не понимаю, как достать "склад" текущего счета и применить его в фильтре по таблице товаров.

фильтр по таблице товаров:
`Склад`= (select "поле склад" from f_data43 where id='{id}') как то так?

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 18 Март 2011 - 10:28

В той теме уже есть ответ - в новой подчиненной записи подключить фильтр из основной таблицы на данный момент не получится.

#3 mak

    Активный участник

  • Активный пользователь
  • PipPipPip
  • 207 сообщений

Отправлено 18 Март 2011 - 10:39

даже если основная таблица уже сохранена?

планируется такая разработка и если да - когда?

#4 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 18 Март 2011 - 11:20

Сохранение основной таблицы не влияет, сохранена должна быть подчиненная запись, чтобы в ней сработал фильтр.

Насчет планов пока ничего сказать не могу.

#5 mak

    Активный участник

  • Активный пользователь
  • PipPipPip
  • 207 сообщений

Отправлено 18 Март 2011 - 22:31

спасибо, будем пробовать другие пути.

появилась такая идея - сделать таблицу, где пользователи могут задать текущее значение для фильтра - склад.
и значение этой таблицы использовать в фильтре.

только фильтровать придется не только товары но и счета, чтобы в один счет, при редактировании не добавлялся товар с разных складов. будет работать?

пытаюсь написать в фильтре условие: "склад" = (select f937 from f_data88 where f936='{current}') не работает.

f_data88 - таблица текущий склад
f937 - поле склад (связь со списком складов в таблице складов) в таблице текущий склад
f936 - поле с именем пользователя


Кстати!
В базе есть механизм отладки?
где можно проверять работоспособность кода и возвращаемые результаты?

#6 mak

    Активный участник

  • Активный пользователь
  • PipPipPip
  • 207 сообщений

Отправлено 19 Март 2011 - 00:01

все работает замечательно, маневр удался, но с таблицами намучился...


остается вопрос про отладку???? ну или окно "тестов":)

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


вообще, о проекте в целом могу сказать, что очень доволен. смотрел около года назад - функционал шагает семи мильными шагами. МОЛОДЦЫ. однако, как год назад, так и сейчас документация слабая. и дело даже не в малом количестве примеров а в описании синтаксиса функций (даже написанных Вами), правил формирования запросов. И что самое главное в ОШИБКАХ В ДОКУМЕНТАЦИИ!!! ("$sotr = data_table("Cотрудники","`Менеджер`".$manager."'");" - где знак "="???? из-за опечатки я потерял около 2-х часов чтобы понять, почему оно не работает :( :( :( ) и это не единичный случай. Можете меня с чистой совестью послать гуглить учебники php и sql... Но я все равно останусь при своем мнении. Ну не хочу я учить php и sql ради простых простых задач для КБ, тем более, если знаком с программированием в другом языке. :)

#7 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 19 Март 2011 - 12:44

пытаюсь написать в фильтре условие: "склад" = (select f937 from f_data88 where f936='{current}') не работает

Названия полей в условии фильтра нужно писать в косых кавычках: `склад` = (select f937 from f_data88 where f936='{current}')


В базе есть механизм отладки?

Смотря что Вы под ней понимаете. Что конкретно Вас интересует?


в локальной версии, при стандартной установке, можно получить доступ к таблицам через phpmyadmin как наппример если ставить на денвер?

Начиная с версии 1.9.3 - да. Запустите файл edit_sql.php в браузере (необходимо войти в программу под администратором)


справочника функций, правил как расставлять кавычки, где (фильтр, вычисления, кнопки, скрипты) они работают а где нет я так понимаю нет?

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


"$sotr = data_table("Cотрудники","`Менеджер`".$manager."'");" - где знак "="????

Ссылку дайте, исправим. Заодно на все другие найденные Вами ошибки.

#8 mak

    Активный участник

  • Активный пользователь
  • PipPipPip
  • 207 сообщений

Отправлено 21 Март 2011 - 13:54

Цитата

пытаюсь написать в фильтре условие: "склад" = (select f937 from f_data88 where f936='{current}') не работает
Названия полей в условии фильтра нужно писать в косых кавычках: `склад` = (select f937 from f_data88 where f936='{current}')
да. уже получилось. спасибо.

Цитата

В базе есть механизм отладки?
Смотря что Вы под ней понимаете. Что конкретно Вас интересует?
когда я пишу вычисления или создаю сложный фильтр..., одним словом делаю не элементарные действия, очень часто с первого раза не получается, приходится искать ошибки в коде что сложно и неэффективно. Если бы я мок видеть значения переменных и результат sql запроса - это сильно облегчило бы задачу. Есть что то подобное в КБ? Может стоит подумать, чтобы добавить станицу, на которой можно выполнять SQL запросы? Думаю это совсем не сложно будет. В Web версии это можно делать напрямую в базе (в 1.9.3 и в локальной появилось, если правильно пронял), а еще лучше видеть эти данные рядом с полем или, например на специальной странице - хотя бы в виде лога.

Цитата

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

Цитата

"$sotr = data_table("Cотрудники","`Менеджер`".$manager."'");" - где знак "="????
Ссылку дайте, исправим. Заодно на все другие найденные Вами ошибки.

ссылка - http://www.clientbas...16/php_samples/
другие ошибки не помню. по возможности буду кидать ссылки, если натолкнусь снова.

да, посмотрел на ваши счета с документами - никуда не годятся. каждый второй бухгалтер пошлет своего менеджера... за новыми документами "как в 1С".
я видел ветку, где этот код был изначально размещен пользователем, а потом скопирован вами в шаблон КБ (или ошибаюсь?), поэтому решил поделится с общественностью и своими наработками когда закончу :(.
будут точные копии доков из 1С: счет, накладная и фактура. возможно, даже, с корректной разбивкой по страницам при печати.
Счет выложу вечером, должен работать в стандартной конфигурации без доработок.

#9 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 21 Март 2011 - 14:42

когда я пишу вычисления или создаю сложный фильтр..., одним словом делаю не элементарные действия, очень часто с первого раза не получается, приходится искать ошибки в коде
Это стандартный механизм отладки, мы тоже так делаем. Не обязательно искать ошибки на глаз, можно выводить промежуточные значения через echo или return к примеру.

Может стоит подумать, чтобы добавить станицу, на которой можно выполнять SQL запросы?
Как Вы сами пишите:
В Web версии это можно делать напрямую в базе (в 1.9.3 и в локальной появилось, если правильно пронял)
поэтому собственно вопрос отчасти снят.

а еще лучше видеть эти данные рядом с полем или, например на специальной странице - хотя бы в виде лога
Не совсем понял честно говоря как это должно выглядеть. Опишите более детально. Если выводить переменные прямо в поле, то по сути это тот же промежуточный return как я описал выше.

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

да и список стандартных таблиц с полями не помешает. Сейчас приходится открывать нужное поле чтобы посмотреть его номер, а вы сами наверняка такой таблицей пользуетесь.
Вообще говоря, мы смотрим номера поля и таблиц таким же образом, в настройках. Или через phpMyAdmin. Никакой особой "справочной таблицы" для таких целей у нас нет. Если и делать такой список, то он должен быть динамическим, в зависимости от текущей конфигурации, смысла помещать в справку какой-то список "стандартных таблиц" нет.

ссылка - http://www.clientbas...16/php_samples/
Исправил.

да, посмотрел на ваши счета с документами - никуда не годятся. каждый второй бухгалтер пошлет своего менеджера... за новыми документами "как в 1С".
я видел ветку, где этот код был изначально размещен пользователем, а потом скопирован вами в шаблон КБ (или ошибаюсь?), поэтому решил поделится с общественностью и своими наработками когда закончу rolleyes.gif.
будут точные копии доков из 1С: счет, накладная и фактура. возможно, даже, с корректной разбивкой по страницам при печати.
Счет выложу вечером, должен работать в стандартной конфигурации без доработок.

Вот это было бы неплохо, т.к. у нас самих руки до этого не доходят. Текущие счета по большому счету взяты "от балды", т.к. стандартная конфигурация - больше образец для разработчика, чем реально работающая база.

#10 mak

    Активный участник

  • Активный пользователь
  • PipPipPip
  • 207 сообщений

Отправлено 21 Март 2011 - 22:45

Счет как и обещал выкладываю.
заголовок до body
подвал после body


как можно дотянутся через smatry до подтаблицы второго, третьего уровня?

т.е например:
счет - позиции счета - справочник цен - номенклатура

Прикрепленные файлы

  • Прикрепленный файл  schet_1C.zip   2,55К   173 Количество загрузок:


#11 mak

    Активный участник

  • Активный пользователь
  • PipPipPip
  • 207 сообщений

Отправлено 21 Март 2011 - 22:53

Цитата

а еще лучше видеть эти данные рядом с полем или, например на специальной странице - хотя бы в виде лога
Не совсем понял честно говоря как это должно выглядеть. Опишите более детально. Если выводить переменные прямо в поле, то по сути это тот же промежуточный return как я описал выше.

например так:

вычесление в поле
$a = 25;
$b = 2;
$result = $a*$b;
return $result;


страница лога, где пишутся все результаты:
$a = 25
$b = 2
$result = 50
return 50

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

чтобы не тратить лишние ресурсы, в окне вычисления галку - писать в лог...

#12 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 22 Март 2011 - 11:15

Просмотр сообщенияmak (21.3.2011, 22:45) писал:

Счет как и обещал выкладываю.
Спасибо.

Просмотр сообщенияmak (21.3.2011, 22:45) писал:

как можно дотянутся через smatry до подтаблицы второго, третьего уровня?
В программе нет поддержки вложенных подтаблиц, как в самих таблицах, так и в шаблонах. Поэтому напрямую вы никак не "дотянетесь" до них. Только если через вычисляемые поля.

#13 mak

    Активный участник

  • Активный пользователь
  • PipPipPip
  • 207 сообщений

Отправлено 22 Март 2011 - 12:02

Просмотр сообщенияРазработчик (22.3.2011, 11:15) писал:

В программе нет поддержки вложенных подтаблиц, как в самих таблицах, так и в шаблонах. Поэтому напрямую вы никак не "дотянетесь" до них. Только если через вычисляемые поля.

т.е. чтобы использовать эти данные, их надо записать при сохранении счета в список позиций. я правильно понимаю?

#14 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 22 Март 2011 - 12:13

Да, так. В виде скрытых полей.

#15 mak

    Активный участник

  • Активный пользователь
  • PipPipPip
  • 207 сообщений

Отправлено 29 Март 2011 - 14:02

Цитата

да, посмотрел на ваши счета с документами - никуда не годятся. каждый второй бухгалтер пошлет своего менеджера... за новыми документами "как в 1С".
я видел ветку, где этот код был изначально размещен пользователем, а потом скопирован вами в шаблон КБ (или ошибаюсь?), поэтому решил поделится с общественностью и своими наработками когда закончу rolleyes.gif.
будут точные копии доков из 1С: счет, накладная и фактура. возможно, даже, с корректной разбивкой по страницам при печати.
Счет выложу вечером, должен работать в стандартной конфигурации без доработок.

Вот это было бы неплохо, т.к. у нас самих руки до этого не доходят. Текущие счета по большому счету взяты "от балды", т.к. стандартная конфигурация - больше образец для разработчика, чем реально работающая база.

выложил в конфигурациях - http://clientbase.ru...?showtopic=2565
для работы в стандартной конфигурации потребуются небольшие доработки...





Количество пользователей, читающих эту тему: 3

0 пользователей, 3 гостей, 0 анонимных