Добрый день, коллеги.

Не нашел явного решения поэтому прошу помощи в решение задачи.

У нашей компании появилось двое платежных реквизитов. Ранее создавал отчет типа fastreport для формирования отчета "Счет" по определенному юр. лицу (у нас два юр. лица). Теперь у юр. лица (буду его называть "одуван") "одуван" появилось двое платежных реквизитов. В деталях контрагента выбрал основной платежный реквизит. При попытке создать отчет "счет" у меня создается отчет на двух листах с основным платежным реквизитом. Такое происходит, когда только два платежных реквизита. И всегда основным выбирается старый основной платежный реквизит, нового как-будто не видит система.
Что пытался сделать и какие мысли были.
Пытался создать фильтр в fastreport - не работает. Выбирал по полю "Банк". Но тут что-то явно делаю не так
Идея: создать доп.поле в карточке счет. в которое из поисковой карточки или выпадающего поля будет выбираться основной платежный реквизит. Это решение плохо тем, что заставляет делать дополнительные манипуляции сотрудников, а им это не нравится.

В идеале хотелось бы реализации такого типа, что при создании отчета появлялось окно фильтра и там можно было бы выбрать основные платежные реквизиты, которое заполнили бы бланк. Такое вообще возможно, а то у меня сомнения, что так можно? И что проще будет?

Нравится

4 комментария

Забыл уточнить. софт Terrasoft CRM 3.3.2.127

Павел, самым простым вариантом, как по мне, будет следующее:

1. Добавить в карточку платежного реквизита поле "По умолчанию для печати счета" с типом булево.
2. В сервисе sq, который используется для построения отчета, добавить параметр с типом целое число и значением 1, и в блок WHERE добавить уловие:

tbl_AccountBillingInfo.ПоУмолчаниюДляПечатиСчета = Parameter:.ПоУмолчаниюДляПечатиСчета

Тогда при печати счета, будет браться та строка, которая отмечена галочкой "По умолчанию для печати счета".
Но, если такой галочки ни у одной записи не будет - тогда в отчет не попадет ничего.

Если такой вариант не нравится, можно пункт 2 не делать, а просто в дизайнере отчета добавить фильтр по полю "По умолчанию для печати счета", которое если заполнить - в счет попадет строка с отмеченной галочкой, а если не заполнить - строка с не отмеченной галочкой.

Дмитрий,

Правильно ли я Вас понимаю, что во 2-ом (втором) случае логика будет такая: Сотрудник пытается с формировать отчет "Счет" и в случае если настроен соответствующий фильтр, то появится окно-фильтр, в котором сотрудник либо заполнит соответствующее поле и сформируется счет с данными реквизитами банка либо не заполнит и в таком случае выберется платежные реквизиты, которые имеют значение по умолчанию.

Да, все верно.
Фильтры можно преднастроить в сервисе отчета через TS Administrator.

Показать все комментарии

В детали платежные реквизиты есть поле Страна, при выборе страны некоторые пользовательские поля отображаются или скрываются.
Подскажите где найти это событие?
Так как в датасете окна и просто датасета это нигде не прописано.

Нравится

2 комментария

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

Помогло, спасибо.

Показать все комментарии

Здравствуйте, подскажите по проблеме.

В конфигурации CRM в детали Платежные реквизиты для страны Украина не отображаются поля реквизитов (ИНН, ЕГРПОУ, № свидетельства и т.д.); появляется только поле Банк. Для России и Казахстана все нормально.

Пользователь внес еще одну запись Украина в справочник стран, но я не думаю, что это привело к данной проблеме.

Заранее благодарен за помощь.

Нравится

1 комментарий

Проблему решили

Показать все комментарии

Задачи две:
1. Так как у каждого контграгента можно выставлять по несколько платежных реквизитов, то хорошо бы для поставщика и клиента в карточке редактирования счета иметь возможность выбора платежных реквизитов.
2. Для каждого типа платежных реквизитов поставщика использовать свою нумерацию счета с префиксом. Например, для компании ООО "Контакт-Центр" счета будут именоваться "СКЦ-15", а для компании ООО "Цифровая Страна" - "СЦС-51". Соответственно логично, что при выборе платежных реквизитов поставщика сразу формировать номер счета с учетом порядка.

Как я собираюсь это делать:
1. В таблицу и карточку редактирования платежных реквизитов внести поле префикса для счета. Соответсвенно префиксы "СКЦ-" и "СЦС-"
2. Добавить в карточку редактирования счета список выбора платежных реквизитов.
3. Добавить в таблицу счета целочисленное поле СчетчикНомера
4. Создать скрипт на изменение значениея поля списка реквизитов поставщика. Этот скрипт для соответствующего типа платежных реквизитов через SQL запрос формирует номер счета и записывает его в поле СчетчикНомера (естественно чтобы не считался текущий счет при выборе максимального номера СчетчикНомера, то в SQL запросе исключаем текущую запись). В номер счета подставляется текст префикс+СчетчикНомера.

Если есть другие реализации, буду рад услышать.

Нравится

5 комментариев

Здравствуйте, Илья.

Есть одно маленькое замечание: в базовой версии продукта, существует системная настройка InvoiceNumber, которая хранит текущий номер счета. Соответственно есть вариант реализации автоматической нумерации счета, используя эту настройку. Т.е при изменении значения поля платежные реквизиты в карточке счета, считываем эту настройку, считываем префикс счета, формируем номер счета и записываем его в поле "Номер". После чего системную настройку увеличиваем на 1.

Если у Вас возникнут дополнительные вопросы в рамках реализации описанного Вами функционала - обращайтесь.

"Олейник Дмитрий" написал:

Здравствуйте, Илья.

Есть одно маленькое замечание: в базовой версии продукта, существует системная настройка InvoiceNumber, которая хранит текущий номер счета. Соответственно есть вариант реализации автоматической нумерации счета, используя эту настройку. Т.е при изменении значения поля платежные реквизиты в карточке счета, считываем эту настройку, считываем префикс счета, формируем номер счета и записываем его в поле "Номер". После чего системную настройку увеличиваем на 1.

Если у Вас возникнут дополнительные вопросы в рамках реализации описанного Вами функционала - обращайтесь.

С уважением,

Олейник Дмитрий

Эксперт 3-й линии поддержки

Да так проще, спасибо.

Подскажите, реализовали ли вы 2-й пункт своего плана (2. Добавить в карточку редактирования счета список выбора платежных реквизитов.)
Если да то поделитесь реализацией.
С Уважением Дмитрий

"Анищенко Дмитрий" написал:

Подскажите, реализовали ли вы 2-й пункт своего плана (2. Добавить в карточку редактирования счета список выбора платежных реквизитов.)

Если да то поделитесь реализацией.

С Уважением Дмитрий

Да делали.

Илья, поделитесь реализацией?)

Показать все комментарии

Здравствуйте, коллеги!

При работе с платежными реквизитами, может возникнуть вопрос, как изменить количество полей карточки "Платежные реквизиты", в зависимости от законодательства страны контрагента. Ниже приведу особенности настройки функционала.
Платформа Terrasoft позволяет регулировать количество полей карточки "Платежные реквизиты". Благодаря чему, при формировании платежных реквизитов, список полей в карточке редактирования будет различаться, в зависимости от страны контрагента.
Для того чтобы определить для какой страны будут доступны те или иные поля, необходимо перейти в форму настройки пользовательских полей (Файл – Настройки – Пользовательские поля), выбрать группу «Платежные реквизиты», и установить взаимосвязь между страной и реквизитами.

1

2

Нравится

Поделиться

2 комментария

Добрый день.
А как можно изменить номер строки?

Здравствуйте, Анастасия!

Изменить номер строки можно с помощью кода в Terrasoft Administrator.
Для этого откройте сервис src_MdsUserFieldsEdit и в функцию AppendItem(Dataset, UserFields, Item, ItemType, ItemControlColumnIndex) внесите следующие изменения:

(на примере ОГРН)

if (Item.Name == 'OGRN')
{
Dataset.ValAsInt(ItemRowNumberFieldName) = 22; //нужный Вам номер строки
}

Полностью функция будет иметь вид:

void function AppendItem(Dataset, UserFields, Item, ItemType, 
	ItemControlColumnIndex) {	
	Dataset.Append();	
	if (1 == Item.ControlColumnIndex) {
		TotalLeft = TotalLeft + 1;		
		Dataset.ValAsInt(ItemRowNumberFieldName) = TotalLeft;
	} else 
	if (2 == Item.ControlColumnIndex) {	
		TotalRight = TotalRight + 1;
		Dataset.ValAsInt(ItemRowNumberFieldName) = TotalRight;				
	}
	if (Item.Name == 'OGRN')
	{
		  Dataset.ValAsInt(ItemRowNumberFieldName) = 22;
	}
	Dataset.ValAsStr(UserFieldsCaptionFieldName) = UserFields.Caption;	
	Dataset.ValAsStr(UserFieldsUSIFieldName) = UserFields.USI;
	Dataset.ValAsStr(ItemNameFieldName) = Item.Name;		
	Dataset.ValAsStr(ItemCaptionFieldName) = Item.Caption;	
	Dataset.ValAsGUID(ItemTypeFieldName) = ItemType;
	Dataset.ValAsGUID(ItemColumnIndexFieldName) = ItemControlColumnIndex;	
	Dataset.Post();    
}

Только внимательно следите чтобы не было дублей в номерах строки.

Показать все комментарии

Здравствуйте.
Мне необходимо провести импорт из 1С контрагентов и их платежных реквизитов. Я настроил синхронизацию. В качестве родительского объекта синхронизации выбрал таблицу Контрагент(ключевое поле - имя контрагента), в качестве подчиненного объекта синхронизации выбрал таблицу Платежные реквизиты(ключевое поле - ИНН). В 1С поле ИНН находится в справочнике Контрагенты.
При импорте данных из 1С с описанными выше настройками все Контрагенты из 1С успешно попали в Terrasoft, а вот таблица платежные реквизиты осталась пустой.
Возможно я неверно выполняю настройку подчиненного объекта синхронизации с 1С,в чем может быть причина такого результата?
В приложенных скринах - настройки синхронизации.

Нравится

11 комментариев

Чтобы импортировать часть данных в родительский объект, а часть в подчиненный из одного и того же справочника, Вам нужно указать в настройке объекта синхронизации поле родителя 1С как [UUID]. А как видно на скриншоте, у Вас оно вообще не заполнено.

Спасибо за ответ. В поле родитель 1С я набрал UUID.
Но результат, к сожалению, остался тот же - реквизиты не попали в Terrasoft.

Возможно Вы и родительский, и дочерний объекты Террасофт настроили на один и тот же объект "Контрагенты" 1C?

"Стоян Виталий" написал:Возможно Вы и родительский, и дочерний объекты Террасофт настроили на один и тот же объект "Контрагенты" 1C?

Да, так я и сделал.
Родительский объект - Контрагент(Terrasoft) я настроил на объект "Контрагенты" 1C. Дочерний объект - Платежные реквизиты, тоже настроен на объект "Контрагенты" 1C.
А как необходимо поступить в этом случае? Ведь поле ИНН, которое мне необходимо для таблицы Платежные реквизиты(Terrasoft) также находится в справочнике 1С Контрагенты.

Что видно на детали "История" у Платежных реквизитов?
(очистите ее а потом запустите импорт с полем родителя 1С = UUID)

У платежных реквизитов история пустой остается.
История заполняется только у родительского объекта - Контрагент.
Добавлено 0, Обновлено 2250, Ошибок 0

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

Проблема решена. Настроил соответствие обязательных для заполнения полей, и импорт прошел успешно.
Большое всем спасибо за советы.

Та же задача. Нужно перенести платежные реквизиты из 1С в Террасофт.
Контрагенты перенеслись (70 штук). Платежные реквизиты тоже перенеслись, но для каждой записи контрагента перенеслось по 70 записей платежных реквизитов.
Ключевым полем у меня является код. Добавил скрины.

Заполните "Поле родителя в 1С" = "Ссылка"

Показать все комментарии