|  09.02.2004, 12:17 | #1 | 
| Участник | Печать документов от разных юр. лиц из одной компании 
			
			Axapta 2.5 SP5 Интересует возможность реализации печати документов в рамках одной компании от разных юр. лиц: наименование, адрес, ИНН, банковские реквизиты. В идеале, необходимо настроить разноску по приходу/расходу по счетам ГК в зависимости от выбранного юр. лица. Подскажите, пожалуйста, наименее трудоемкий путь реализации данного механизма. Заранее спасибо. | 
|  | 
|  09.02.2004, 12:24 | #2 | 
| Шаман форума | 
			
			Попробуйте так - совсем все таблицы общие, кроме реквизитов компании. То есть компаний в базе много, "начинка" у них через виртуальную компанию объединена, а таблицы с реквизитами отдельные.
		 | 
|  | 
|  09.02.2004, 12:50 | #3 | 
| Участник | 
			
			Спасибо, но в этом случае перед обработкой документов будет необходимо сменить компанию. Т.е. если конкретный заказ необходимо обработать от другого юр. лица - меняем компанию и обрабатываем накладную. Я все верно понял?
		 | 
|  | 
|  09.02.2004, 14:23 | #4 | 
| Шаман форума | 
			
			Да, верно. Или держите 10 компаний открытыми одновременно. Другой вариант - намудрить себе кучу епчатных форм, и менять их при печати, но это уже программирование.
		 | 
|  | 
|  09.02.2004, 16:52 | #5 | 
| Участник | 
			
			На самом деле, проблема достаточно сложная. Приходилось это решать уже не раз, опишу проблемы при разных вариантах (что помню, специально документ все не составлю - лень) Вариант 1. Виртуальные компании. Объединяются таблицы. Следовательно, нужно проанализировать около 2 тыс. таблиц и для каждой решить какой она будет - общей или частной. Потом создать нужные Table Collections. Работы немного. Единственное что нужно помнить, что разъединить таблицы проще, чем соединить в рабочей базе. Но проблему с нумераторами, если таблицы общие, придется решать за счет суффиксов/префиксов или разведением номеров по компаниям (у нас объединялись, например, строки Закупок/Заказов, а шапки - нет, а разводить пришлось нумераторы и строк и шапок). Еще проблема - необходима лицензия "Компании неограничены", если компаний больше двух. Вариант 2. В одной компании. Все здорово, но тогда возникают другие проблемы. Нумераторы все в одной компании, а это значит, что нумерация счетов-фактур, накладных и всего чего можно, будет общей. Это можно обойти дополнительным программированием, но забывать о проблеме нельзя. Далее, разделение проводок по компаниям, можно при помощи аналитик. А вот разделить разноски нельзя, разве что заставить вручную устанавливать каждый раз разноску. В остальном подводных камней не нашел. Способ понятный, но трудозатратый. Навскидку это только часть проблем. В моей практике использовался всегда первый вариант. Его я считаю менее трудоемким. | 
|  | 
|  09.02.2004, 20:35 | #6 | 
| Участник | Цитата: 
		
			Изначально опубликовано Михаил Андреев  Вариант 1. Виртуальные компании. Объединяются таблицы. Следовательно, нужно проанализировать около 2 тыс. таблиц и для каждой решить какой она будет - общей или частной. Потом создать нужные Table Collections. Работы немного.  Цитата: 
		
			Изначально опубликовано Михаил Андреев  Единственное что нужно помнить, что разъединить таблицы проще, чем соединить в рабочей базе. Цитата: 
		
			Изначально опубликовано Михаил Андреев  Нумераторы все в одной компании, а это значит, что нумерация счетов-фактур, накладных и всего чего можно, будет общей. Это можно обойти дополнительным программированием, но забывать о проблеме нельзя. Цитата: 
		
			Изначально опубликовано Михаил Андреев  Навскидку это только часть проблем. В моей практике использовался всегда первый вариант. Его я считаю менее трудоемким. | 
|  | 
|  09.02.2004, 23:02 | #7 | 
| Member | Цитата: 
		
			Изначально опубликовано mazzy  ...Группа номерных серий вполне позволяет делать разные номера для СФ, накладных... А вот для М-15 сделали группы. Значит все не на столько уж запущено. Может и для фактур сделают? 
				__________________ С уважением, glibs® | 
|  | 
|  10.02.2004, 10:04 | #8 | 
| Участник | почему в работающей базе разъединить проще, чем объединить 
			
			Объясняю, почему в работающей базе (в которой уже есть данные и она запущена в рабочую эксплуатацию) разъединить проще, чем объединить. Разъединение можно сделать простым экспортом нужной таблицы, а затем импортом в реальные компании, попутно удалив лишние записи в каждой компании. Как правило, это довольно легко: быстро находятся записи, не связанные ни с чем и удаляются. Осталось проверить, что суммарное количество записей в двух (или нескольких) компаниях сохранилось и все. Можно даже в реальной базе зайти в SQL Query и поправить DataAreaId (проблема может быть с номерами). Но экспорт-импорт надежнее, типа средство штатное. А вот объединить.... Не помню уже точно, какие таблицы пришлось объединять, но проблема была в том, что появились неуникальные записи из-за одинакового нумератора, которые раньше различались только DataAreaId. А чтобы исправить номера в одной таблице, нужно их также поправить во всех, где этот номер встречается. Можно представить, сколько таблиц придется перелопатить, если объединять таблицу InventDim, например, а если LedgerTrans, то лучше вообще не браться   | 
|  | 
|  10.02.2004, 10:47 | #9 | 
| Участник | Цитата: 
		
			Изначально опубликовано glibs  Если речь идет о международных терминах, то да, это работает. Но для российских фактур я групп номерных серий не вижу. Блн, устарели мои познания в этой области. Да, ты прав. Группы существуют для PackingSlip, invioce, но отсутствуют для Facture_Ru... Блин, блин, блин. В смысле, учиться, учиться и еще раз учиться... Спасибо. | 
|  | 
|  10.02.2004, 10:48 | #10 | 
| Участник | Re: почему в работающей базе разъединить проще, чем объединить Цитата: 
		
			Изначально опубликовано Михаил Андреев  Разъединение можно сделать простым экспортом нужной таблицы, а затем ... | 
|  | 
|  10.02.2004, 11:06 | #11 | 
| Участник | Цитата: 
		
			Изначально опубликовано mazzy  Ну... если только печать... И если не надо регистрировать историю в системе, то можно сделать и модификацию. В этом меня, например, Максим Горбунов убедил. Получается действительно очень локальная и не вредная модификация. Но только для печати! | 
|  | 
|  10.02.2004, 11:13 | #12 | 
| Участник | Цитата: 
		
			Изначально опубликовано May  Можно немного по подробней о том, что сказал Максим Горбунов?   | 
|  | 
|  10.02.2004, 11:53 | #13 | 
| Участник | 
			
			Он сейчас в полях.
		 | 
|  | 
|  10.02.2004, 22:00 | #14 | 
| Administrator | 
			
			Вот и я. Прямо из полей   Да, модификация действительно не очень большая. Во-первых, надо решить, каким способом Вы будете вести учет юридических лиц. Я пробовал два варианта: (1) юр. лица храняться непосредственно в таблице CompanyInfo со значением Key не равным 0 (это значение зарезервировано для основной компании) или (2) юр. лица храняться в отдельной таблице, напоминающей CompanyInfo по структуре. В 1 случае придется немного поправить методы на таблице CompanyInfo (например, insert и find). Во втором случае желательно сразу завести Map, объединящий CompanyInfo и таблицу для юр. лиц. Во-вторых, в таблицы журналов документов, в которых будут печататься реквизиты юр. лиц (журнал накладных, журнал счетов на оплату, журнал фактур), следует добавить поле - характеристику того, от какого юр. лица печатается конкретный журнал. И, наконец, модификация печати. Печать всех документов, кроме счетов-фактур, устроена так, что сначала происходит подготовка данных, и только затем они передаются в отчет. Отвечают за это классы SalesReport* и PurchReport*. Собственно, их и надо "подкручивать". Даже скажу, что смотреть надо метод initCompanyData. Со счетами-фактурами ситуация немного другая: там сбор данных ведется непосредственно в отчете. Смотрите executeSection у секции, связанной с FactureJour. В качестве подсказки: здесь очень поможет использование Map'а, если Вы решили хранить юр. лиц в другой таблице. На счет нумерации. Не далее, чем сегодня покопался в классах, формирующих счета на оплату и счета-фактуры. Могу сказать, что "доделать" их так, чтобы они использовали группы номерных серий, совсем не сложно. Больше того, счет на оплату в модуле "Закупки" группы номерных серий обрабатывает корректно (спасибо Евгению Глазову  ), а вот на "Заказы" видимо сил при локализации не хватило. После того, как Вы это сделаете, можно будет создать группу номерных серий для каждого юр. лица и выставлять ее в заказе ((с) glibs). 
				__________________ Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me | 
|  | 
|  11.02.2004, 00:13 | #15 | 
| Member | Цитата: 
		
			Изначально опубликовано Maxim Gorbunov  ...а вот на "Заказы" видимо сил при локализации не хватило... 
				__________________ С уважением, glibs® | 
|  | 
|  11.02.2004, 09:47 | #16 | 
| Участник | 
			
			Спасибо, будем пробовать.
		 | 
|  |