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


Связь счета с контрагентом


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

#1 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 19 Июль 2013 - 08:39

Есть счет по контрагенту.
Необходимо: Если в счете строка "Оплачено" поменялась, то есть сумма в ней отлична от нуля, то в контрагенты должна идти запись об этом..

Вопрос,как можно реализовать..
Думаю так-может создать подтаблицу, куда будут заноситься данные по оплате..
Только какие связи задать?
Получается, еще нужно создать вычисление, навроде
$line['Оплачено'] !=0

Или нет? Чтобы данные из счета шли к контрагенту..
Кто может помочь разъяснить? Может сталкивались? Вроде как по сути нужная вещь,чтобы видеть была оплата или нет..

#2 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 19 Июль 2013 - 08:49

Создала сейчас в таблице контрагента такую подтаблицу http://take.ms/Ch4uY связь с таблицей контрагента через название.
Получается, теперь мне нужно в вычислении счета дописать чтото навроде:

При изменении поля "Оплачено"

Подставляются значения из счета в подтаблицу "Оплаченные счета":

Поле "Номер" из счета=в Поле "Номер счета" из подтаблицы контрагента
Поле "На кого" из счета=в Поле "Наименование контрагента" из подтаблицы контрагента
Поле "Оплачено" из счета=в Поле "Сумма" из подтаблицы контрагента
Поле "Дата п/п" из счета=в Поле "Дата" из подтаблицы контрагента

Кто может подсказать как это прописать?

Сообщение отредактировал Dinara: 19 Июль 2013 - 09:17


#3 CbCoder

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

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

Отправлено 19 Июль 2013 - 11:28

http://clientbase.ru...?showtopic=3221

#4 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 19 Июль 2013 - 12:27

Создала как там прописано

if ($line['Оплачено'] !=0)
{
$data['Номер счета'] = $ID;
$data['Оплачено'] = $line['Оплачено'];
insert_query($data,"Оплаченные счета");
}

Или я неправильно прописала, что поле "оплачено" не должно быть равно нулю?Как правильно? Нужно ли условие какое-либо прописывать внизу?

#5 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 19 Июль 2013 - 12:34

Попыталась уже сделать и так:

$data['Номер счета'] = $ID;
$data['Оплачено'] = $line['Оплачено'];
$data['На кого'] = $line['На кого'];
$data['Дата п/п'] = $line['Дата п/п'];
insert_query($data,"Оплаченные");

"При изменении поля "Оплачено""

http://take.ms/9j7AVT Имеет ли значение что задавать в подчиненной таблице контрагента? Ставить связь с полями в таблице "Счета"?

Сообщение отредактировал Dinara: 19 Июль 2013 - 12:50


#6 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 19 Июль 2013 - 12:44

Прикольно, на вкладке "Оплаченные" заполняется только 2 поля,остальные нет..в таблице контрагента же, не появляются даже эти данные... http://take.ms/PHo8wa

Сообщение отредактировал Dinara: 19 Июль 2013 - 12:53


#7 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 19 Июль 2013 - 12:55

кстати,получается, что поле "Название" тоже должно прописываться..добавила такую строчку

$data['Название'] = $ID;

Но видимо как-то некорректно..подставляется не тот контрагент,который нужен..

Сообщение отредактировал Dinara: 19 Июль 2013 - 13:02


#8 Dinara

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

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 19 Июль 2013 - 13:12

$data['На кого'] = $ID;
$data['Оплачено'] = $line['Оплачено'];
$data['Номер счета'] = $line['Номер'];
$data['Дата п/п'] = $line['Дата п/п'];
insert_query($data,"Оплаченные");


Почти получилось) как только связать теперь поле "Название" с названием Контрагента, чтобы отображалось в карточке контрагента? Поле типа "связь" между ними стоит...

Когда прописываю $data['Название'] = $ID; получаю вообще другую организацию(
http://take.ms/QagD79

$data['Название'] = $line['На кого']; не помогает


СДЕЛАЛА: добавила просто в контструктр вычисления поля "Название"-связь. Но хотелось бы узнать,а почему в вычислении поле не заполнялось корректно? как правильно прописать нужно?

Сообщение отредактировал Dinara: 19 Июль 2013 - 13:46


#9 CbCoder

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

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

Отправлено 19 Июль 2013 - 14:41

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

Во-вторых, заполнять это поле нужно из поля "На кого" таблицы "Счета" (если вычисление находится там), при этом учитывая особенности работы с полям связи в переменной $line (у вас выше не учитывается):

$data['Название'] = $line['На кого']['raw'];


P.S. имя поля "Название" сбивает с толку, логичнее было бы назвать его "Контрагент", если это именно связь с контрагентом.

#10 f-jeka

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

  • Пользователи
  • PipPipPip
  • 196 сообщений

Отправлено 12 Май 2014 - 03:11

Как сделать чтоб в таблице Контрагенты отображались все счета выставленные на контрагента с гиперссылками на счета.
В таблице Контрагенты создал запись "Список счетов" типа связь с таблицей "Счета". В таблице "Счета" есть поле "Номер заявки" которое связывает счета с контрагентами, там прописывается ID контрагента.
Создал вычисление $line['Список счетов'] = $line['Список счетов']['Номер счета']; Выставленные счета не отображаются в поле 'Список счетов'.
Как правильно сделать вычисление?

#11 CbCoder

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

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

Отправлено 12 Май 2014 - 08:47

Поле с типом связь в данном случае неуместно вообще. Связь можно создать с одной записью, а не с несколькими. Например, у нескольких счетов может быть связь с одним и тем же контрагентом, но только с одним. Обратная ситуацию уже создать через связь невозможно. Иначе вам придется создавать вычисляемое поле, которое будет самостоятельно генерировать несколько ссылок в текстовое поле. Но проще сделать счета подтаблицей, вернее добавить таблицу Счета в подтаблицы таблицы Контрагенты. Тогда вы автоматом будете видеть все связанные с контрагентом Счета.

#12 f-jeka

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

  • Пользователи
  • PipPipPip
  • 196 сообщений

Отправлено 12 Май 2014 - 09:41

Спасибо. Расскажите подробнее как это сделать. Создал подчиненную подтаблицу "Список счетов" в категории "Компании". Сделал связь с таблицей "Контрагенты" У Контрагентов появилась подтаблица "Список счетов"
Как теперь связать эту подтаблицу с таблицей "Счета" и сделать так, чтоб выставленные счета в ней отображались?

#13 CbCoder

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

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

Отправлено 12 Май 2014 - 10:00

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

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

#14 f-jeka

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

  • Пользователи
  • PipPipPip
  • 196 сообщений

Отправлено 12 Май 2014 - 11:04

Не могу найти как добавить - "привязать существующую таблицу"
Захожу в раздел "Таблицы и представления категории "Компании"" Там можно "Добавить таблицу" и "Добавить представление"
У меня версия 1.9.7

#15 CbCoder

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

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

Отправлено 12 Май 2014 - 11:14

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





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

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