<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.standart-n.ru/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.standart-n.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=%D0%98%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BE%D1%82_04%2F09%2F2020</id>
		<title>Исправление от 04/09/2020 - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.standart-n.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=%D0%98%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BE%D1%82_04%2F09%2F2020"/>
		<link rel="alternate" type="text/html" href="http://wiki.standart-n.ru/index.php?title=%D0%98%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BE%D1%82_04/09/2020&amp;action=history"/>
		<updated>2026-04-26T00:49:30Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.23.3</generator>

	<entry>
		<id>http://wiki.standart-n.ru/index.php?title=%D0%98%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BE%D1%82_04/09/2020&amp;diff=8885&amp;oldid=prev</id>
		<title>Avo в 12:24, 8 октября 2020</title>
		<link rel="alternate" type="text/html" href="http://wiki.standart-n.ru/index.php?title=%D0%98%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BE%D1%82_04/09/2020&amp;diff=8885&amp;oldid=prev"/>
				<updated>2020-10-08T12:24:05Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 12:24, 8 октября 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 522:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 522:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; &amp;#160; matching (doc_id,part_id,MARK_DATA,SERIES_NUMBER);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; &amp;#160; matching (doc_id,part_id,MARK_DATA,SERIES_NUMBER);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;/del&gt;/*if (not exists(select id from GROUP_DETAIL where GROUP_ID=-43 and GROUPTABLE_ID=:da_id and GROUPTABLE='DOC_DETAIL_ACTIVE')) then&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &amp;#160; --AVO 08/10/2020 Отключено, так как есть треггер в таблице doc_detail_active где смотрится на поле marking - если маркированный ставим группу&amp;#160; &amp;#160; &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &amp;#160; &lt;/ins&gt;/*if (not exists(select id from GROUP_DETAIL where GROUP_ID=-43 and GROUPTABLE_ID=:da_id and GROUPTABLE='DOC_DETAIL_ACTIVE')) then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; &amp;#160;  UPDATE OR INSERT INTO GROUP_DETAIL (GROUP_ID, PARENT_ID, GROUPTABLE_ID, GROUPTABLE) VALUES (-43, 0, :da_id, 'DOC_DETAIL_ACTIVE')&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; &amp;#160;  UPDATE OR INSERT INTO GROUP_DETAIL (GROUP_ID, PARENT_ID, GROUPTABLE_ID, GROUPTABLE) VALUES (-43, 0, :da_id, 'DOC_DETAIL_ACTIVE')&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; &amp;#160;  MATCHING (GROUP_ID, PARENT_ID, GROUPTABLE_ID, GROUPTABLE);*/&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; &amp;#160;  MATCHING (GROUP_ID, PARENT_ID, GROUPTABLE_ID, GROUPTABLE);*/&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Avo</name></author>	</entry>

	<entry>
		<id>http://wiki.standart-n.ru/index.php?title=%D0%98%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BE%D1%82_04/09/2020&amp;diff=8884&amp;oldid=prev</id>
		<title>Avo в 12:22, 8 октября 2020</title>
		<link rel="alternate" type="text/html" href="http://wiki.standart-n.ru/index.php?title=%D0%98%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BE%D1%82_04/09/2020&amp;diff=8884&amp;oldid=prev"/>
				<updated>2020-10-08T12:22:01Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 12:22, 8 октября 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 522:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 522:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; &amp;#160; matching (doc_id,part_id,MARK_DATA,SERIES_NUMBER);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; &amp;#160; matching (doc_id,part_id,MARK_DATA,SERIES_NUMBER);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; &amp;#160; if (not exists(select id from GROUP_DETAIL where GROUP_ID=-43 and GROUPTABLE_ID=:da_id and GROUPTABLE='DOC_DETAIL_ACTIVE')) then&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;/*&lt;/ins&gt;if (not exists(select id from GROUP_DETAIL where GROUP_ID=-43 and GROUPTABLE_ID=:da_id and GROUPTABLE='DOC_DETAIL_ACTIVE')) then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; &amp;#160;  UPDATE OR INSERT INTO GROUP_DETAIL (GROUP_ID, PARENT_ID, GROUPTABLE_ID, GROUPTABLE) VALUES (-43, 0, :da_id, 'DOC_DETAIL_ACTIVE')&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; &amp;#160;  UPDATE OR INSERT INTO GROUP_DETAIL (GROUP_ID, PARENT_ID, GROUPTABLE_ID, GROUPTABLE) VALUES (-43, 0, :da_id, 'DOC_DETAIL_ACTIVE')&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; &amp;#160;  MATCHING (GROUP_ID, PARENT_ID, GROUPTABLE_ID, GROUPTABLE);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; &amp;#160;  MATCHING (GROUP_ID, PARENT_ID, GROUPTABLE_ID, GROUPTABLE);&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;*/&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; end&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;end&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Avo</name></author>	</entry>

	<entry>
		<id>http://wiki.standart-n.ru/index.php?title=%D0%98%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BE%D1%82_04/09/2020&amp;diff=8803&amp;oldid=prev</id>
		<title>Avo: Новая страница: «&lt;pre&gt; SET TERM ^ ;  create or alter procedure PR_EDITCUSTOMDOC (     DOC_ID type of DM_ID,     SESSION_ID type of DM_ID,     RGUID type of DM_RGUID) returns (…»</title>
		<link rel="alternate" type="text/html" href="http://wiki.standart-n.ru/index.php?title=%D0%98%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BE%D1%82_04/09/2020&amp;diff=8803&amp;oldid=prev"/>
				<updated>2020-09-09T11:49:40Z</updated>
		
		<summary type="html">&lt;p&gt;Новая страница: «&amp;lt;pre&amp;gt; SET TERM ^ ;  create or alter procedure PR_EDITCUSTOMDOC (     DOC_ID type of DM_ID,     SESSION_ID type of DM_ID,     RGUID type of DM_RGUID) returns (…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
SET TERM ^ ;&lt;br /&gt;
&lt;br /&gt;
create or alter procedure PR_EDITCUSTOMDOC (&lt;br /&gt;
    DOC_ID type of DM_ID,&lt;br /&gt;
    SESSION_ID type of DM_ID,&lt;br /&gt;
    RGUID type of DM_RGUID)&lt;br /&gt;
returns (&lt;br /&gt;
    CUR_DOC_ID type of DM_ID)&lt;br /&gt;
as&lt;br /&gt;
declare variable VNUM type of DM_ID_NULL;&lt;br /&gt;
declare variable DOC_TYPE type of DM_ID;&lt;br /&gt;
declare variable DOC_BASE_TYPE type of DM_ID;&lt;br /&gt;
declare variable DOC_STATUS type of DM_STATUS;&lt;br /&gt;
declare variable DOC_AGENT_ID type of DM_ID;&lt;br /&gt;
declare variable DOCNUM type of DM_TEXT;&lt;br /&gt;
declare variable DOC_CAPTION type of DM_TEXT;&lt;br /&gt;
declare variable BASE_AGENT_ID integer;&lt;br /&gt;
declare variable DOCDATE type of DM_DATETIME;&lt;br /&gt;
declare variable EGAIS_NUM DM_TEXT;&lt;br /&gt;
declare variable EGAIS_ID DM_TEXT;&lt;br /&gt;
declare variable EGAIS_UNITTYPE DM_TEXT;&lt;br /&gt;
declare variable EGAIS_STATUS DM_STATUS;&lt;br /&gt;
declare variable AGENTS_CONTRACT_ID DM_ID;&lt;br /&gt;
declare variable PART_ID DM_ID;&lt;br /&gt;
declare variable QUANT DM_DOUBLE;&lt;br /&gt;
declare variable SUMMA DM_DOUBLE;&lt;br /&gt;
declare variable SUM_DSC DM_DOUBLE;&lt;br /&gt;
declare variable DISCOUNT DM_DOUBLE;&lt;br /&gt;
declare variable SUM_NDSO DM_DOUBLE;&lt;br /&gt;
declare variable ACCEPTANCE DM_TEXT;&lt;br /&gt;
declare variable AGENT_FIRST DM_TEXT1024;&lt;br /&gt;
declare variable DATE_FIRST_PRIHOD DM_DATE;&lt;br /&gt;
declare variable MARKING DM_ID;&lt;br /&gt;
declare variable DATEPROD DM_DATE;&lt;br /&gt;
declare variable GTIN_SUBJ DM_TEXT;&lt;br /&gt;
declare variable ACCEPTTYPE DM_ID;&lt;br /&gt;
declare variable CUR_DDA_ID DM_ID;&lt;br /&gt;
declare variable DCARD DM_TEXT;&lt;br /&gt;
declare variable SUMMA_O DM_DOUBLE;&lt;br /&gt;
declare variable NAC DM_DOUBLE;&lt;br /&gt;
declare variable COMMENTS DM_BLOBTEXT;&lt;br /&gt;
declare variable AGENT_PLACE DM_TEXT;&lt;br /&gt;
begin&lt;br /&gt;
  select d.doc_type, d.status, dt.base_type, dt.caption, d.docnum, d.docdate, d.agent_id, d.vnum, d.base_agent_id, EGAIS_NUM, EGAIS_ID, EGAIS_UNITTYPE, EGAIS_STATUS,&lt;br /&gt;
  d.AGENTS_CONTRACT_ID, d.COMMENTS, d.agent_place from docs d left join doc_types dt on d.doc_type=dt.id where d.id=:doc_id&lt;br /&gt;
    into :doc_type, :doc_status, :doc_base_type, :doc_caption, :docnum, :docdate, :doc_AGENT_ID,:vnum, :BASE_AGENT_ID, :EGAIS_NUM, :EGAIS_ID,&lt;br /&gt;
    :EGAIS_UNITTYPE, :EGAIS_STATUS, :AGENTS_CONTRACT_ID, :COMMENTS, :agent_place;&lt;br /&gt;
&lt;br /&gt;
  if (doc_type is null) then exception EX_CANTFINDDOC_ID;&lt;br /&gt;
  if (doc_status in (0,-2,2)) then exception EX_WRONGDOCSTATUS;&lt;br /&gt;
  if (doc_base_type=3) then exception EX_WRONGDOC_BASE_TYPE;&lt;br /&gt;
&lt;br /&gt;
  cur_doc_id=gen_id(gen_docs_id,1);&lt;br /&gt;
  insert into docs (ID,PARENT_ID,DOC_TYPE,STATUS,AGENT_ID,RGUID,AUDIT_ID,DOCNUM,DOCDATE,DELETED_DOC_ID, BASE_AGENT_ID, EGAIS_NUM, EGAIS_ID, EGAIS_UNITTYPE, EGAIS_STATUS,AGENTS_CONTRACT_ID, COMMENTS)&lt;br /&gt;
    values (:cur_doc_id,0,:DOC_TYPE,0,:doc_AGENT_ID,:RGUID,:session_ID,:DOCNUM,:DOCDATE,:DOC_ID, :BASE_AGENT_ID, :EGAIS_NUM, :EGAIS_ID, :EGAIS_UNITTYPE, :EGAIS_STATUS,:AGENTS_CONTRACT_ID, :COMMENTS);&lt;br /&gt;
  -- Обновление номера документа на старое значение&lt;br /&gt;
  UPDATE docs set vnum = :vnum, caption=:doc_caption || ' №' || :vnum, agent_place=:agent_place  where id = :cur_doc_id;&lt;br /&gt;
&lt;br /&gt;
  if (doc_base_type=1) then --приход&lt;br /&gt;
  begin&lt;br /&gt;
   if (doc_status=1) then --&lt;br /&gt;
   begin&lt;br /&gt;
/*     insert into DOC_DETAIL_ACTIVE (doc_id,part_id,quant,summa,discount,koef,sum_dsc,sum_ndso)&lt;br /&gt;
       select :cur_doc_id,part_id,quant,summa,discount,0,sum_dsc,sum_ndso from doc_detail where doc_id=:doc_id;*/&lt;br /&gt;
      for&lt;br /&gt;
          select PART_ID, QUANT, SUMMA, DISCOUNT, SUM_DSC, SUM_NDSO, ACCEPTANCE, AGENT_FIRST, DATE_FIRST_PRIHOD,&lt;br /&gt;
                 MARKING, DATEPROD, GTIN_SUBJ, ACCEPTTYPE&lt;br /&gt;
          from DOC_DETAIL&lt;br /&gt;
          where DOC_ID = :DOC_ID&lt;br /&gt;
          into :PART_ID, :QUANT, :SUMMA, :DISCOUNT, :SUM_DSC, :SUM_NDSO, :ACCEPTANCE, :AGENT_FIRST, :DATE_FIRST_PRIHOD,&lt;br /&gt;
               :MARKING, :DATEPROD, :GTIN_SUBJ, :ACCEPTTYPE&lt;br /&gt;
      do&lt;br /&gt;
      begin&lt;br /&gt;
        CUR_DDA_ID = gen_id(GEN_DOC_DETAIL_ACTIVE_ID, 1);&lt;br /&gt;
        insert into DOC_DETAIL_ACTIVE (ID, DOC_ID, PART_ID, QUANT, SUMMA, DISCOUNT, KOEF, SUM_DSC, SUM_NDSO, ACCEPTANCE,&lt;br /&gt;
                                       AGENT_FIRST, DATE_FIRST_PRIHOD, MARKING, DATEPROD, GTIN_SUBJ, ACCEPTTYPE)&lt;br /&gt;
        values (:CUR_DDA_ID, :CUR_DOC_ID, :PART_ID, :QUANT, :SUMMA, :DISCOUNT, 0, :SUM_DSC, :SUM_NDSO, :ACCEPTANCE,&lt;br /&gt;
                :AGENT_FIRST, :DATE_FIRST_PRIHOD, :MARKING, :DATEPROD, :GTIN_SUBJ, :ACCEPTTYPE);&lt;br /&gt;
        update MARK_DETAIL M&lt;br /&gt;
        set M.DOC_ID = :CUR_DOC_ID,&lt;br /&gt;
            M.DDA_ID = :CUR_DDA_ID&lt;br /&gt;
        where M.DOC_ID = :DOC_ID and&lt;br /&gt;
              M.PART_ID = :PART_ID;&lt;br /&gt;
        /*add AVO 07/09/2020 Группу маркированного товара переводим на DOC_DETAIL_ACTIVE*/&lt;br /&gt;
        if (:MARKING=1) then&lt;br /&gt;
        update GROUP_DETAIL gd set gd.grouptable_id=:CUR_DDA_ID, gd.grouptable='DOC_DETAIL_ACTIVE' where gd.grouptable='PARTS' and gd.group_id=-43 and gd.group_id=:PART_ID;&lt;br /&gt;
      end&lt;br /&gt;
      update DOC_DETAIL_ACTIVE dda set dda.part_id=iif((select count(*) from doc_detail where part_id = dda.part_id) &amp;gt; 1,dda.part_id,0) where dda.doc_id=:cur_doc_id;&lt;br /&gt;
   end&lt;br /&gt;
   else&lt;br /&gt;
   begin&lt;br /&gt;
     if (doc_status=-1) then&lt;br /&gt;
     begin&lt;br /&gt;
       insert into DOC_DETAIL_ACTIVE (doc_id,part_id,quant,summa,discount,koef,sum_dsc)&lt;br /&gt;
         select :cur_doc_id,part_id,quant,summa,discount,0,sum_dsc from doc_detail_deleted where doc_id=:doc_id;&lt;br /&gt;
&lt;br /&gt;
       update DOC_DETAIL_ACTIVE dda set dda.part_id=iif((select count(*) from doc_detail where part_id = dda.part_id) &amp;gt; 1,dda.part_id,0) where dda.doc_id=:cur_doc_id;&lt;br /&gt;
     end &lt;br /&gt;
   end&lt;br /&gt;
  end&lt;br /&gt;
  else if ((doc_base_type=2) or (doc_base_type=7)) then  --расход&lt;br /&gt;
  begin&lt;br /&gt;
    if (doc_status=1) then&lt;br /&gt;
    begin&lt;br /&gt;
/*      insert into doc_detail_active (doc_id,part_id,quant,dcard,summa,summa_o,nac,discount,sum_ndso,koef,sum_dsc)&lt;br /&gt;
        select :cur_doc_id,part_id,quant,dcard,summa,summa_o,nac,discount,sum_ndso,1,sum_dsc from doc_detail where doc_id=:doc_id;*/&lt;br /&gt;
&lt;br /&gt;
      for&lt;br /&gt;
          select PART_ID, QUANT, DCARD, SUMMA, SUMMA_O, NAC, DISCOUNT, SUM_NDSO, SUM_DSC, ACCEPTANCE, AGENT_FIRST, DATE_FIRST_PRIHOD,&lt;br /&gt;
                 MARKING, DATEPROD, GTIN_SUBJ, ACCEPTTYPE&lt;br /&gt;
          from DOC_DETAIL&lt;br /&gt;
          where DOC_ID = :DOC_ID&lt;br /&gt;
          into :PART_ID, :QUANT, :DCARD, :SUMMA, :SUMMA_O, :NAC, :DISCOUNT, :SUM_NDSO, :SUM_DSC, :ACCEPTANCE, :AGENT_FIRST, :DATE_FIRST_PRIHOD,&lt;br /&gt;
               :MARKING, :DATEPROD, :GTIN_SUBJ, :ACCEPTTYPE&lt;br /&gt;
      do&lt;br /&gt;
      begin&lt;br /&gt;
        CUR_DDA_ID = gen_id(GEN_DOC_DETAIL_ACTIVE_ID, 1);&lt;br /&gt;
        insert into DOC_DETAIL_ACTIVE (ID, DOC_ID, PART_ID, QUANT, DCARD, SUMMA, SUMMA_O, NAC, DISCOUNT, SUM_NDSO, KOEF, SUM_DSC, ACCEPTANCE,&lt;br /&gt;
                                       AGENT_FIRST, DATE_FIRST_PRIHOD, MARKING, DATEPROD, GTIN_SUBJ, ACCEPTTYPE)&lt;br /&gt;
        values (:CUR_DDA_ID, :CUR_DOC_ID, :PART_ID, :QUANT, :DCARD, :SUMMA, :SUMMA_O, :NAC, :DISCOUNT, :SUM_NDSO, 1, :SUM_DSC, :ACCEPTANCE,&lt;br /&gt;
                :AGENT_FIRST, :DATE_FIRST_PRIHOD, :MARKING, :DATEPROD, :GTIN_SUBJ, :ACCEPTTYPE);&lt;br /&gt;
        update MARK_DETAIL M&lt;br /&gt;
        set M.DOC_ID = :CUR_DOC_ID,&lt;br /&gt;
            M.DDA_ID = :CUR_DDA_ID&lt;br /&gt;
        where M.DOC_ID = :DOC_ID and&lt;br /&gt;
              M.PART_ID = :PART_ID;&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    else&lt;br /&gt;
    begin&lt;br /&gt;
      if (doc_status=-1) then&lt;br /&gt;
      begin&lt;br /&gt;
        insert into doc_detail_active (doc_id,part_id,quant,dcard,summa,summa_o,nac,discount,sum_ndso,koef,sum_dsc)&lt;br /&gt;
          select :cur_doc_id,part_id,quant,dcard,summa,summa_o,nac,discount,sum_ndso,1,sum_dsc from doc_detail_deleted where doc_id=:doc_id;&lt;br /&gt;
      end&lt;br /&gt;
    end &lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  suspend;&lt;br /&gt;
end^&lt;br /&gt;
&lt;br /&gt;
SET TERM ; ^&lt;br /&gt;
&lt;br /&gt;
/* Следующие операторы GRANT сгенерированы автоматически */&lt;br /&gt;
&lt;br /&gt;
GRANT SELECT,INSERT,UPDATE ON DOCS TO PROCEDURE PR_EDITCUSTOMDOC;&lt;br /&gt;
GRANT SELECT ON DOC_TYPES TO PROCEDURE PR_EDITCUSTOMDOC;&lt;br /&gt;
GRANT SELECT ON DOC_DETAIL TO PROCEDURE PR_EDITCUSTOMDOC;&lt;br /&gt;
GRANT SELECT,INSERT,UPDATE ON DOC_DETAIL_ACTIVE TO PROCEDURE PR_EDITCUSTOMDOC;&lt;br /&gt;
GRANT SELECT,UPDATE ON MARK_DETAIL TO PROCEDURE PR_EDITCUSTOMDOC;&lt;br /&gt;
GRANT SELECT,UPDATE ON GROUP_DETAIL TO PROCEDURE PR_EDITCUSTOMDOC;&lt;br /&gt;
GRANT SELECT ON DOC_DETAIL_DELETED TO PROCEDURE PR_EDITCUSTOMDOC;&lt;br /&gt;
&lt;br /&gt;
/* Существующие привилегии на эту процедуру */&lt;br /&gt;
&lt;br /&gt;
GRANT EXECUTE ON PROCEDURE PR_EDITCUSTOMDOC TO STANDART;&lt;br /&gt;
GRANT EXECUTE ON PROCEDURE PR_EDITCUSTOMDOC TO SYSDBA;&lt;br /&gt;
&lt;br /&gt;
SET TERM ^ ;&lt;br /&gt;
&lt;br /&gt;
create or alter procedure GM$PR_PRIHOD_DOC_TREB (&lt;br /&gt;
    DOC_ID integer)&lt;br /&gt;
as&lt;br /&gt;
declare variable DOC_TYPE DM_STATUS;&lt;br /&gt;
declare variable AGENT_ID DM_ID_NULL;&lt;br /&gt;
declare variable G$PROFILE_ID DM_ID_NULL;&lt;br /&gt;
declare variable DOC_COMMITDATE DM_DATE;&lt;br /&gt;
declare variable DOC_UUID DM_ID_NULL;&lt;br /&gt;
declare variable TO_PROFILE_ID DM_ID_NULL;&lt;br /&gt;
declare variable FIRST_AGENT_ID DM_ID_NULL;&lt;br /&gt;
begin&lt;br /&gt;
  select doc_type, agent_id, cast(commitdate as dm_date)&lt;br /&gt;
  from docs where id=:doc_id into :doc_type, :agent_id, :doc_commitdate;&lt;br /&gt;
  if (doc_type not in (6,11)) then  exit;&lt;br /&gt;
&lt;br /&gt;
  --select gp.id from G$PROFILES gp where gp.agent_id=:agent_id into :g$profile_id;&lt;br /&gt;
  select (select N from GET_INTEGER(email)) from agents where id=:agent_id into :to_profile_id;&lt;br /&gt;
  select (select N from GET_INTEGER(p.param_value)) from params p where p.param_id='CODE_PROFILE' into :g$profile_id;&lt;br /&gt;
  if (g$profile_id is null or to_profile_id is null) then exit;&lt;br /&gt;
  DOC_TYPE=40;&lt;br /&gt;
&lt;br /&gt;
  --Сохраняем контрагента в переменной FIRST_AGENT_ID если есть необходимо расскомментировтаь&lt;br /&gt;
  select FIRST_AGENT_ID from docs where id=:doc_id into :FIRST_AGENT_ID;&lt;br /&gt;
  if (FIRST_AGENT_ID is null) then FIRST_AGENT_ID = (select id from agents where email=(select p.param_value from params p where p.param_id='CODE_PROFILE'));&lt;br /&gt;
&lt;br /&gt;
  --27/05/2020 AVO Добавлено полуение ID  первоначального контрагента&lt;br /&gt;
  INSERT INTO DOCS_TREB (ID,PARENT_ID, DOC_TYPE, STATUS, AGENT_ID, DOCNUM, DOCDATE,&lt;br /&gt;
  RGUID, INSERTDT, POSTDT, AUDIT_ID, VNUM, VSHIFT, CREATER, OWNER, COMMITDATE,&lt;br /&gt;
  DEVICE_NUM, SUMMA, SUMMA_O, SUM_NDSO, CALCSUMMA, COMMENTS, SUMM1, SUMM2, SUMM3, SUMM4,&lt;br /&gt;
  CHECKDATA, COMMITSESSION_ID, SUM_DSC, CASHDATA, PRICE_TYPE, CURRENCY_ID, BASE_AGENT_ID,&lt;br /&gt;
  CONTRACT_ID, G$PROFILE_ID, LINK_ID, DELETED_DOC_ID,TO_PROFILE_ID,/*27/05/2020 add AVO*/FIRST_AGENT,&lt;br /&gt;
  /*04/09/2020 add AVO*/AGENT_PLACE)&lt;br /&gt;
  select ID,PARENT_ID,:doc_type, 1 as STATUS, AGENT_ID, DOCNUM, DOCDATE,&lt;br /&gt;
         RGUID, INSERTDT, POSTDT, AUDIT_ID, VNUM, VSHIFT, CREATER, OWNER, COMMITDATE,&lt;br /&gt;
         DEVICE_NUM, SUMMA, SUMMA_O, SUM_NDSO, CALCSUMMA, COMMENTS, SUMM1, SUMM2, SUMM3, SUMM4,&lt;br /&gt;
         CHECKDATA, COMMITSESSION_ID, SUM_DSC, CASHDATA, PRICE_TYPE, CURRENCY_ID, BASE_AGENT_ID,&lt;br /&gt;
         CONTRACT_ID, :g$profile_id as G$PROFILE_ID, LINK_ID, DELETED_DOC_ID,:to_profile_id as TO_PROFILE_ID,&lt;br /&gt;
         /*27/05/2020 add AVO*/:first_agent_id as first_agent_id,/*04/09/2020 add AVO*/AGENT_PLACE&lt;br /&gt;
  from docs where id=:doc_id&lt;br /&gt;
  returning id into :doc_uuid;&lt;br /&gt;
&lt;br /&gt;
  INSERT INTO DOC_DETAIL_ACTIVE_TREB&lt;br /&gt;
  (ID,PARENT_ID, PART_ID, PRICE,PRICE_O, QUANT, DISCOUNT, SUMMA,&lt;br /&gt;
   SUMMA_O, DCARD, INSERTDT, SUM_NDSO, NAC,  HUMAN_QUANT, SUM_DSC,&lt;br /&gt;
   PART_TYPE, BASE_AGENT_ID, G$PROFILE_ID, TO_PROFILE_ID,&lt;br /&gt;
   STATUS, DOC_ID, SNAME, SUM_NDSR, ORIG_CODE, SKLAD_ID,&lt;br /&gt;
   BARCODE1, BCODE_IZG,BARCODE, PRICE_Z, PRICE_R, SERIA, NDS, SERT, DATESERT, KEMVSERT,SDSERT,&lt;br /&gt;
   GODENDO, REGN, NGTD, EDIZM, SIZG, SCOUNTRY,  DEP, GNVLS, SORIG_NAME,SORIG_IZG,SORIG_COUNTRY,MNN,&lt;br /&gt;
   WARE_ID,NAME_ID,IZG_ID,COUNTRY_ID,ORIG_NAME_ID,ORIG_IZG_ID,ORIG_COUNTRY_ID,MOTHERPART_UUID,&lt;br /&gt;
   -- 23/07/2020 AVO Добавлены поля для передачи по маркировке&lt;br /&gt;
   MARKING,GTIN_SUBJ,ACCEPTTYPE,DATEPROD)&lt;br /&gt;
   select&lt;br /&gt;
   dd.ID,0, 0, p.PRICE,p.PRICE_O, -1*(dd.QUANT), dd.DISCOUNT, -1*(dd.SUMMA),&lt;br /&gt;
   -1*(dd.SUMMA_O),dd.DCARD, dd.INSERTDT, -1*(dd.SUM_NDSO), p.NAC, dd.HUMAN_QUANT,&lt;br /&gt;
   dd.SUM_DSC,p.PART_TYPE, 0, :g$profile_id, :to_profile_id,&lt;br /&gt;
   0, :doc_uuid, vn.svalue,  dd.SUM_NDSR,  w.ORIG_CODE,  p.SKLAD_ID,&lt;br /&gt;
   p.BARCODE1, w.barcode,p.BARCODE, p.PRICE_Z, p.PRICE_R, p.SERIA, p.NDS, p.SERT, p.DATESERT, p.KEMVSERT,&lt;br /&gt;
   p.SDSERT, p.GODENDO, p.REGN, p.NGTD, p.EDIZM, vi.svalue, vc.svalue,p.DEP,&lt;br /&gt;
   (select membership from PR_MEMBERSHIPS('PARTS=' || part_id || ';PARTS.NAME_ID=' || name_id ||';',ascii_char(13)||ascii_char(10),1)),&lt;br /&gt;
   '','','','',p.WARE_ID,w.NAME_ID,w.IZG_ID,w.COUNTRY_ID,&lt;br /&gt;
   w.ORIG_NAME_ID,w.ORIG_IZG_ID,w.ORIG_COUNTRY_ID,p.d$uuid,MARKING,GTIN_SUBJ,ACCEPTTYPE,DATEPROD&lt;br /&gt;
   from doc_detail dd&lt;br /&gt;
   left join parts p on p.id=dd.part_id&lt;br /&gt;
   left join wares w on w.id=p.ware_id&lt;br /&gt;
   left join vals vn on vn.id=w.name_id&lt;br /&gt;
   left join vals vi on vi.id=w.izg_id&lt;br /&gt;
   left join vals vc on vc.id=w.country_id&lt;br /&gt;
   where dd.doc_id=:doc_id;&lt;br /&gt;
end^&lt;br /&gt;
&lt;br /&gt;
SET TERM ; ^&lt;br /&gt;
&lt;br /&gt;
/* Следующие операторы GRANT сгенерированы автоматически */&lt;br /&gt;
&lt;br /&gt;
GRANT SELECT ON DOCS TO PROCEDURE GM$PR_PRIHOD_DOC_TREB;&lt;br /&gt;
GRANT EXECUTE ON PROCEDURE GET_INTEGER TO PROCEDURE GM$PR_PRIHOD_DOC_TREB;&lt;br /&gt;
GRANT SELECT ON AGENTS TO PROCEDURE GM$PR_PRIHOD_DOC_TREB;&lt;br /&gt;
GRANT SELECT ON PARAMS TO PROCEDURE GM$PR_PRIHOD_DOC_TREB;&lt;br /&gt;
GRANT INSERT ON DOCS_TREB TO PROCEDURE GM$PR_PRIHOD_DOC_TREB;&lt;br /&gt;
GRANT INSERT ON DOC_DETAIL_ACTIVE_TREB TO PROCEDURE GM$PR_PRIHOD_DOC_TREB;&lt;br /&gt;
GRANT EXECUTE ON PROCEDURE PR_MEMBERSHIPS TO PROCEDURE GM$PR_PRIHOD_DOC_TREB;&lt;br /&gt;
GRANT SELECT ON DOC_DETAIL TO PROCEDURE GM$PR_PRIHOD_DOC_TREB;&lt;br /&gt;
GRANT SELECT ON PARTS TO PROCEDURE GM$PR_PRIHOD_DOC_TREB;&lt;br /&gt;
GRANT SELECT ON WARES TO PROCEDURE GM$PR_PRIHOD_DOC_TREB;&lt;br /&gt;
GRANT SELECT ON VALS TO PROCEDURE GM$PR_PRIHOD_DOC_TREB;&lt;br /&gt;
&lt;br /&gt;
/* Существующие привилегии на эту процедуру */&lt;br /&gt;
&lt;br /&gt;
GRANT EXECUTE ON PROCEDURE GM$PR_PRIHOD_DOC_TREB TO PROCEDURE PR_DOC_RASHOD_COMMIT;&lt;br /&gt;
GRANT EXECUTE ON PROCEDURE GM$PR_PRIHOD_DOC_TREB TO PROCEDURE PR_ENAKL_PRIHOD_DOC_TREB_RESEND;&lt;br /&gt;
GRANT EXECUTE ON PROCEDURE GM$PR_PRIHOD_DOC_TREB TO SYSDBA;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SET TERM ^ ;&lt;br /&gt;
&lt;br /&gt;
CREATE OR ALTER trigger docs_treb_bi for docs_treb&lt;br /&gt;
active before insert position 0&lt;br /&gt;
as&lt;br /&gt;
declare variable new_doc_id dm_id;&lt;br /&gt;
declare variable doc_type dm_id;&lt;br /&gt;
declare variable tek_d$uuid dm_uuid;&lt;br /&gt;
declare variable agent_id dm_id_null;&lt;br /&gt;
begin&lt;br /&gt;
  if (new.to_profile_id=cast((select p.param_value from params p where p.param_id='CODE_PROFILE') as dm_id)) then&lt;br /&gt;
  begin&lt;br /&gt;
    new_doc_id=gen_id(gen_docs_id,1);&lt;br /&gt;
    if (new.doc_type=41) then&lt;br /&gt;
      doc_type=6;&lt;br /&gt;
    else if (new.doc_type=39) then&lt;br /&gt;
      doc_type=8;&lt;br /&gt;
    else if (new.doc_type=40) then&lt;br /&gt;
--25/06/2020 AVO если используется первоначальный контрагент, то делаем приход поставщика&lt;br /&gt;
      doc_type=1;--приход поставщика&lt;br /&gt;
    -- doc_type=2;--приход перемеением&lt;br /&gt;
--end 25/06/2020&lt;br /&gt;
    else doc_type=1;&lt;br /&gt;
&lt;br /&gt;
    select id from agents where deletedt is null and email=cast(new.g$profile_id as dm_text) into :agent_id;&lt;br /&gt;
&lt;br /&gt;
--27/05/2020 AVO Если документ расход перемещением, то нам нужно при создании нового документа вернуть первоначального контрагента&lt;br /&gt;
    if (new.doc_type=40) then&lt;br /&gt;
     if (new.first_agent is not null) then&lt;br /&gt;
      agent_id = new.first_agent;&lt;br /&gt;
--end 27/05/2020&lt;br /&gt;
&lt;br /&gt;
    if (agent_id is null) then agent_id=-2;&lt;br /&gt;
    update or insert into docs (ID,PARENT_ID,DOC_TYPE,AGENT_ID,DOCDATE,RGUID,AUDIT_ID,COMMITDATE,STATUS,VNUM,DOCNUM,DOC_TREB_ID,AGENT_PLACE) values&lt;br /&gt;
     (:new_doc_id, 0,:doc_type,:agent_id,new.docdate,new.rguid,0,new.commitdate,iif(new.status=1,2,-1),new.vnum,new.docnum,new.id,new.agent_place) matching (RGUID);&lt;br /&gt;
--20170105 А.К. заявка 861654, 862594&lt;br /&gt;
    for select d$uuid from doc_detail_active_treb where doc_id=new.id  into :tek_d$uuid do&lt;br /&gt;
--       update doc_detail_active set doc_id=:new_doc_id where doc_detail_active_treb_d$uuid=:tek_d$uuid;&lt;br /&gt;
       update doc_detail_active set doc_id=:new_doc_id where doc_id = 0 and doc_detail_active_treb_d$uuid=:tek_d$uuid;&lt;br /&gt;
  end&lt;br /&gt;
end^&lt;br /&gt;
&lt;br /&gt;
SET TERM ; ^&lt;br /&gt;
&lt;br /&gt;
SET TERM ^ ;&lt;br /&gt;
&lt;br /&gt;
CREATE OR ALTER trigger doc_detail_active_treb_bi0 for doc_detail_active_treb&lt;br /&gt;
active before insert or update position 0&lt;br /&gt;
AS&lt;br /&gt;
declare variable doc_id dm_id;&lt;br /&gt;
declare variable dd_id dm_id;&lt;br /&gt;
declare variable real_q_warebase dm_double;&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
--заявка 723238 По умолчанию дата вставки приходит из реального документа, а триггер DOC_DETAIL_ACTIVE_TREB_BI_DISTR удаляет неактуальные строки&lt;br /&gt;
   new.insertdt=current_timestamp;&lt;br /&gt;
&lt;br /&gt;
-- AVO 26/02/2020  цену розничную вычисленную из суммы&lt;br /&gt;
   new.price = coalesce(abs(new.summa/new.quant),0);&lt;br /&gt;
&lt;br /&gt;
--679291 А.К. 20160804&lt;br /&gt;
--  doc_id=coalesce((select d.id from docs d left join docs_treb dt on dt.rguid=d.rguid where dt.id=new.doc_id AND&lt;br /&gt;
  doc_id=coalesce((select first 1 d.id from docs_treb dt left join docs d on dt.rguid=d.rguid where dt.id=new.doc_id AND dt.g$profile_id=new.g$profile_id AND&lt;br /&gt;
      DT.to_profile_id=cast((select p.param_value from params p where p.param_id='CODE_PROFILE') as dm_id)),0);&lt;br /&gt;
&lt;br /&gt;
  if ((new.to_profile_id=cast((select p.param_value from params p where p.param_id='CODE_PROFILE') as dm_id))&lt;br /&gt;
  and (select first 1 d.status from docs d where d.id=:doc_id) not in (1,-1)) then&lt;br /&gt;
  begin&lt;br /&gt;
    if ((select first 1 doc_type from docs_treb where id=new.doc_id and to_profile_id=cast((select p.param_value from params p where p.param_id='CODE_PROFILE') as dm_id))=40) then --прих перемещение&lt;br /&gt;
    begin&lt;br /&gt;
      delete from doc_detail_active where DOC_DETAIL_ACTIVE_TREB_D$UUID  = new.d$uuid; --Заявка 760688 А.К.&lt;br /&gt;
      update or insert into doc_detail_active (gnvls,DOC_ID,PART_ID,PART_PARENT_ID,PRICE,NAC,QUANT,DISCOUNT,SUMMA,SUMMA_O,WARE_ID,PRICE_O,PRICE_Z,PRICE_R,BARCODE,BARCODE1,GODENDO,SERIA,NDS,SUM_NDSO,SERT,&lt;br /&gt;
      DATESERT,KEMVSERT,SDSERT,REGN,NGTD,EDIZM,NAME_ID,IZG_ID,COUNTRY_ID,ORIG_CODE,ORIG_NAME_ID,ORIG_IZG_ID,ORIG_COUNTRY_ID,Z_ID,SKLAD_ID,SNAME,SIZG,SCOUNTRY,SORIG_NAME,SORIG_IZG,&lt;br /&gt;
      SORIG_COUNTRY,INSERTDT,INFO,KOEF,MOTHERPART_ID,DEP,BCODE_IZG,HUMAN_QUANT,SUM_DSC,CUSTOMDRAW,STATUS,PART_TYPE,BASE_AGENT_ID,GROUP_ID,DOC_DETAIL_ACTIVE_TREB_D$UUID,MOTHERPART_UUID&lt;br /&gt;
      /*04/09/2020 AVO Добавлены поля для маркировки*/&lt;br /&gt;
      ,MARKING,DATEPROD,GTIN_SUBJ,ACCEPTTYPE)&lt;br /&gt;
      values&lt;br /&gt;
      (new.gnvls,:doc_id,new.PART_ID,new.PART_PARENT_ID,new.PRICE,new.NAC,new.QUANT,new.DISCOUNT,new.SUMMA,&lt;br /&gt;
      new.SUMMA_O,new.WARE_ID,new.PRICE_O,new.PRICE_Z,new.PRICE_R,new.BARCODE,new.BARCODE1,new.GODENDO,new.SERIA,new.NDS,new.SUM_NDSO,new.SERT,&lt;br /&gt;
      new.DATESERT,new.KEMVSERT,new.SDSERT,new.REGN,new.NGTD,new.EDIZM,new.NAME_ID,new.IZG_ID,new.COUNTRY_ID,new.ORIG_CODE,new.ORIG_NAME_ID,new.ORIG_IZG_ID,new.ORIG_COUNTRY_ID,&lt;br /&gt;
      new.Z_ID,new.SKLAD_ID,new.SNAME,new.SIZG,new.SCOUNTRY,new.SORIG_NAME,new.SORIG_IZG,  new.SORIG_COUNTRY,new.INSERTDT,new.INFO,new.KOEF,new.MOTHERPART_ID,&lt;br /&gt;
      new.DEP,new.BCODE_IZG,new.HUMAN_QUANT,new.SUM_DSC,new.CUSTOMDRAW,new.STATUS,new.PART_TYPE,new.BASE_AGENT_ID,new.GROUP_ID,new.d$uuid,new.motherpart_uuid&lt;br /&gt;
       /*04/09/2020 AVO Добавлены поля для маркировки*/&lt;br /&gt;
      ,new.marking,new.dateprod,new.gtin_subj,new.accepttype&lt;br /&gt;
       )&lt;br /&gt;
      matching (DOC_DETAIL_ACTIVE_TREB_D$UUID) ;&lt;br /&gt;
      if (new.parent_id &amp;lt;&amp;gt;0 ) then&lt;br /&gt;
        update doc_detail_active set parent_id=(select first 1 da.id from doc_detail_active da where da.doc_detail_active_treb_d$uuid=&lt;br /&gt;
        (select first 1 ddt.d$uuid from doc_detail_active_treb ddt where ddt.id=new.parent_id)) where DOC_DETAIL_ACTIVE_TREB_D$UUID=new.d$uuid;&lt;br /&gt;
      if ((select first 1 id from doc_detail_active_treb where parent_id=new.id)&amp;gt;0) then&lt;br /&gt;
        update doc_detail_active set parent_id=(select first 1 da.id from doc_detail_active da where da.doc_detail_active_treb_d$uuid=new.d$uuid)&lt;br /&gt;
        where id=(select first 1 da.id from doc_detail_active da where da.doc_detail_active_treb_d$uuid=&lt;br /&gt;
        (select first 1 ddt.d$uuid from doc_detail_active_treb ddt where ddt.parent_id=new.id)) ;&lt;br /&gt;
    end&lt;br /&gt;
    if ((select first 1 doc_type from docs_treb where id=new.doc_id and to_profile_id=cast((select p.param_value from params p where p.param_id='CODE_PROFILE') as dm_id))=39) then --требование переоценки&lt;br /&gt;
    begin&lt;br /&gt;
      --Заявка 760688 А.К.&lt;br /&gt;
      --select id from PR_CORRECTPART(:doc_id,new.part_id,abs(new.quant)) into :dd_id;&lt;br /&gt;
      --update doc_detail_active set price=new.price,DOC_DETAIL_ACTIVE_TREB_D$UUID=new.d$uuid,nac=new.nac where id=:dd_id;&lt;br /&gt;
      select first 1 realquant from warebase where part_id=new.part_id and price &amp;lt;&amp;gt; new.price into :real_q_warebase;&lt;br /&gt;
      if ((coalesce(real_q_warebase,0)) &amp;lt; 0.01) then exit;&lt;br /&gt;
      if (:real_q_warebase &amp;gt; abs(new.quant)) then real_q_warebase = new.quant;&lt;br /&gt;
      select id from PR_CORRECTPART(:doc_id,new.part_id,abs(:real_q_warebase)) into :dd_id;&lt;br /&gt;
      update doc_detail_active set price=new.price, summa = new.price*quant, DOC_DETAIL_ACTIVE_TREB_D$UUID=new.d$uuid,nac=new.nac where id=:dd_id;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end^&lt;br /&gt;
&lt;br /&gt;
SET TERM ; ^&lt;br /&gt;
&lt;br /&gt;
SET TERM ^ ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CREATE OR ALTER TRIGGER SET_MARKING_GROUP FOR DOC_DETAIL_ACTIVE&lt;br /&gt;
ACTIVE AFTER INSERT OR UPDATE POSITION 0&lt;br /&gt;
AS&lt;br /&gt;
begin&lt;br /&gt;
/*add AVO 04/09/2020&lt;br /&gt;
Для позиций проверяем, если товар маркированный, то ставим группу маркировки принудительно&lt;br /&gt;
*/&lt;br /&gt;
  if (new.marking=1) then&lt;br /&gt;
   begin&lt;br /&gt;
--Проверяем есть ли группа, если есть уже - выходим&lt;br /&gt;
    if ((select count(id) from GROUP_DETAIL where GROUP_ID =-43 and GROUPTABLE='DOC_DETAIL_ACTIVE' and GROUPTABLE_ID=new.id)&amp;gt;0) then&lt;br /&gt;
     exit;&lt;br /&gt;
    if ((not exists(select id from GROUP_DETAIL where GROUP_ID=-43 and GROUPTABLE_ID=new.id and GROUPTABLE='DOC_DETAIL_ACTIVE'))) then&lt;br /&gt;
     UPDATE OR INSERT INTO GROUP_DETAIL (GROUP_ID, PARENT_ID, GROUPTABLE_ID, GROUPTABLE) VALUES (-43, 0, new.id, 'DOC_DETAIL_ACTIVE')&lt;br /&gt;
         MATCHING (GROUP_ID, PARENT_ID, GROUPTABLE_ID, GROUPTABLE);&lt;br /&gt;
   end&lt;br /&gt;
end&lt;br /&gt;
^&lt;br /&gt;
&lt;br /&gt;
SET TERM ; ^&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/******************************************************************************/&lt;br /&gt;
/***               Generated by IBExpert 04.09.2020 11:18:08                ***/&lt;br /&gt;
/******************************************************************************/&lt;br /&gt;
&lt;br /&gt;
/******************************************************************************/&lt;br /&gt;
/***      Following SET SQL DIALECT is just for the Database Comparer       ***/&lt;br /&gt;
/******************************************************************************/&lt;br /&gt;
SET SQL DIALECT 3;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/******************************************************************************/&lt;br /&gt;
/***                                 Tables                                 ***/&lt;br /&gt;
/******************************************************************************/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE MARK_DETAIL_TREB (&lt;br /&gt;
    ID                             DM_ID NOT NULL /* DM_ID = BIGINT */,&lt;br /&gt;
    DOC_ID                         DM_ID /* DM_ID = BIGINT */,&lt;br /&gt;
    PART_ID                        DM_ID /* DM_ID = BIGINT */,&lt;br /&gt;
    MARK_DATA                      DM_TEXT1024 /* DM_TEXT1024 = VARCHAR(1024) */,&lt;br /&gt;
    QUANT                          DM_STATUS /* DM_STATUS = INTEGER */,&lt;br /&gt;
    COMMITDATE                     DM_DATETIME /* DM_DATETIME = TIMESTAMP */,&lt;br /&gt;
    INSERTDT                       DM_DATETIME /* DM_DATETIME = TIMESTAMP */,&lt;br /&gt;
    DOCNUM                         DM_TEXT /* DM_TEXT = VARCHAR(250) */,&lt;br /&gt;
    DOC_DATE                       DM_DATE /* DM_DATE = DATE */,&lt;br /&gt;
    DDA_ID                         DM_ID /* DM_ID = BIGINT */,&lt;br /&gt;
    PLACE_ID_IN                    DM_TEXT /* DM_TEXT = VARCHAR(250) */,&lt;br /&gt;
    PLACE_ID_OUT                   DM_TEXT /* DM_TEXT = VARCHAR(250) */,&lt;br /&gt;
    GTIN                           DM_TEXT /* DM_TEXT = VARCHAR(250) */,&lt;br /&gt;
    SERIES_NUMBER                  DM_TEXT /* DM_TEXT = VARCHAR(250) */,&lt;br /&gt;
    EXPIRATION_DATE                DM_DATE /* DM_DATE = DATE */,&lt;br /&gt;
    ACTIVEPOS                      DM_ID /* DM_ID = BIGINT */,&lt;br /&gt;
    SERIA                          DM_TEXT /* DM_TEXT = VARCHAR(250) */,&lt;br /&gt;
    KIZ                            DM_TEXT_BIG /* DM_TEXT_BIG = VARCHAR(10000) */,&lt;br /&gt;
    EXPIRETION_DATE                DM_DATE /* DM_DATE = DATE */,&lt;br /&gt;
    SSCC                           DM_TEXT /* DM_TEXT = VARCHAR(250) */,&lt;br /&gt;
    ACCEPTED                       DM_ID /* DM_ID = BIGINT */,&lt;br /&gt;
    STATUS                         DM_TEXT /* DM_TEXT = VARCHAR(250) */,&lt;br /&gt;
    AGREGATION                     DM_ID /* DM_ID = BIGINT */,&lt;br /&gt;
    DOC_DETAIL_ACTIVE_TREB_D$UUID  DM_UUID /* DM_UUID = CHAR(36) NOT NULL */,&lt;br /&gt;
    D$UUID                         DM_UUID /* DM_UUID = CHAR(36) NOT NULL */,&lt;br /&gt;
    D$SRVUPDDT                     DM_DATETIME /* DM_DATETIME = TIMESTAMP */&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/******************************************************************************/&lt;br /&gt;
/***                                Indices                                 ***/&lt;br /&gt;
/******************************************************************************/&lt;br /&gt;
&lt;br /&gt;
CREATE UNIQUE INDEX MARK_DETAIL_TREB_IDX1 ON MARK_DETAIL_TREB (D$UUID);&lt;br /&gt;
CREATE UNIQUE INDEX MARK_DETAIL_TREB_IDX2 ON MARK_DETAIL_TREB (DOC_DETAIL_ACTIVE_TREB_D$UUID,DOC_ID,MARK_DATA,SERIES_NUMBER);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/******************************************************************************/&lt;br /&gt;
/***                                Triggers                                ***/&lt;br /&gt;
/******************************************************************************/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SET TERM ^ ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/******************************************************************************/&lt;br /&gt;
/***                          Triggers for tables                           ***/&lt;br /&gt;
/******************************************************************************/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* Trigger: MARK_DETAIL_TREB_AD_DISTR */&lt;br /&gt;
CREATE OR ALTER TRIGGER MARK_DETAIL_TREB_AD_DISTR FOR MARK_DETAIL_TREB&lt;br /&gt;
ACTIVE AFTER DELETE POSITION 0&lt;br /&gt;
AS&lt;br /&gt;
begin&lt;br /&gt;
    update or insert into g$distribute (TABLENAME,UUID,SOPER,FROM_PROFILE_ID) values ('MARK_DETAIL_TREB',old.d$uuid,2,null) matching (TABLENAME,UUID);&lt;br /&gt;
end&lt;br /&gt;
^&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* Trigger: MARK_DETAIL_TREB_BI_DISTR */&lt;br /&gt;
CREATE OR ALTER TRIGGER MARK_DETAIL_TREB_BI_DISTR FOR MARK_DETAIL_TREB&lt;br /&gt;
ACTIVE BEFORE INSERT POSITION 0&lt;br /&gt;
AS&lt;br /&gt;
begin&lt;br /&gt;
    if (new.d$srvupddt is null) then&lt;br /&gt;
    begin&lt;br /&gt;
      new.d$srvupddt='2000-01-01';&lt;br /&gt;
      if (new.d$uuid is null) then&lt;br /&gt;
        new.d$uuid=UUID_TO_CHAR(GEN_UUID());&lt;br /&gt;
      update or insert into g$distribute (TABLENAME,UUID,SOPER,FROM_PROFILE_ID) values ('MARK_DETAIL_TREB',new.d$uuid,0,null) matching (TABLENAME,UUID);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
^&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* Trigger: MARK_DETAIL_TREB_BU_DISTR */&lt;br /&gt;
CREATE OR ALTER TRIGGER MARK_DETAIL_TREB_BU_DISTR FOR MARK_DETAIL_TREB&lt;br /&gt;
ACTIVE BEFORE UPDATE POSITION 0&lt;br /&gt;
AS&lt;br /&gt;
begin&lt;br /&gt;
    if (new.D$SRVUPDDT=old.D$SRVUPDDT) then&lt;br /&gt;
        update or insert into g$distribute (TABLENAME,UUID,SOPER,FROM_PROFILE_ID) values ('MARK_DETAIL_TREB',new.d$uuid,1,null) matching (TABLENAME,UUID);&lt;br /&gt;
end&lt;br /&gt;
^&lt;br /&gt;
&lt;br /&gt;
SET TERM ; ^&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SET TERM ^ ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CREATE OR ALTER TRIGGER MARK_DETAIL_TREB_BIU1 FOR MARK_DETAIL_TREB&lt;br /&gt;
ACTIVE BEFORE INSERT OR UPDATE POSITION 1&lt;br /&gt;
AS&lt;br /&gt;
declare variable da_id dm_id;&lt;br /&gt;
declare variable doc_id dm_id;&lt;br /&gt;
begin&lt;br /&gt;
  if (new.d$srvupddt&amp;lt;&amp;gt;'2000-01-01') then&lt;br /&gt;
    if (exists(select id from doc_detail_active where DOC_DETAIL_ACTIVE_TREB_D$UUID = new.doc_detail_active_treb_d$uuid)) then&lt;br /&gt;
    begin&lt;br /&gt;
        select id, doc_id from doc_detail_active where DOC_DETAIL_ACTIVE_TREB_D$UUID  = new.doc_detail_active_treb_d$uuid into :da_id, :doc_id;&lt;br /&gt;
        update or insert into MARK_DETAIL (DOC_ID,PART_ID,MARK_DATA,QUANT,COMMITDATE,INSERTDT,DOCNUM,DOC_DATE,DDA_ID,PLACE_ID_IN,PLACE_ID_OUT,GTIN,SERIES_NUMBER,EXPIRATION_DATE,ACTIVEPOS,SERIA,KIZ,EXPIRETION_DATE,SSCC,ACCEPTED,STATUS,AGREGATION)&lt;br /&gt;
          values (:DOC_ID,0,new.MARK_DATA,abs(new.QUANT),new.COMMITDATE,new.INSERTDT,new.DOCNUM,new.DOC_DATE,:DA_ID,new.PLACE_ID_IN,new.PLACE_ID_OUT,new.GTIN,new.SERIES_NUMBER,new.EXPIRATION_DATE,1,new.SERIA,new.KIZ,new.EXPIRETION_DATE,new.SSCC,new.ACCEPTED,new.STATUS,new.AGREGATION)&lt;br /&gt;
        matching (doc_id,part_id,MARK_DATA,SERIES_NUMBER);&lt;br /&gt;
&lt;br /&gt;
        if (not exists(select id from GROUP_DETAIL where GROUP_ID=-43 and GROUPTABLE_ID=:da_id and GROUPTABLE='DOC_DETAIL_ACTIVE')) then&lt;br /&gt;
         UPDATE OR INSERT INTO GROUP_DETAIL (GROUP_ID, PARENT_ID, GROUPTABLE_ID, GROUPTABLE) VALUES (-43, 0, :da_id, 'DOC_DETAIL_ACTIVE')&lt;br /&gt;
         MATCHING (GROUP_ID, PARENT_ID, GROUPTABLE_ID, GROUPTABLE);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
^&lt;br /&gt;
&lt;br /&gt;
SET TERM ; ^&lt;br /&gt;
&lt;br /&gt;
SET TERM ^ ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CREATE OR ALTER TRIGGER DOC_DETAIL_ACTIVE_TREB_MARK_BI0 FOR DOC_DETAIL_ACTIVE_TREB&lt;br /&gt;
ACTIVE BEFORE INSERT POSITION 1&lt;br /&gt;
AS&lt;br /&gt;
begin&lt;br /&gt;
  if (new.d$srvupddt='2000-01-01') then&lt;br /&gt;
  begin&lt;br /&gt;
    insert into MARK_DETAIL_TREB (ID,DOC_ID,PART_ID,MARK_DATA,QUANT,COMMITDATE,INSERTDT,DOCNUM,DOC_DATE,DDA_ID,PLACE_ID_IN,PLACE_ID_OUT,GTIN,SERIES_NUMBER,EXPIRATION_DATE,ACTIVEPOS,SERIA,KIZ,EXPIRETION_DATE,SSCC,ACCEPTED,STATUS,AGREGATION, DOC_DETAIL_ACTIVE_TREB_D$UUID)&lt;br /&gt;
    select ID,DOC_ID,'0',MARK_DATA,QUANT,COMMITDATE,INSERTDT,DOCNUM,DOC_DATE,DDA_ID,PLACE_ID_IN,PLACE_ID_OUT,GTIN,SERIES_NUMBER,EXPIRATION_DATE,ACTIVEPOS,SERIA,KIZ,EXPIRETION_DATE,SSCC,ACCEPTED,STATUS,AGREGATION, new.d$uuid&lt;br /&gt;
      from MARK_DETAIL&lt;br /&gt;
      where DOC_ID = new.doc_id;&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
^&lt;br /&gt;
&lt;br /&gt;
SET TERM ; ^&lt;br /&gt;
&lt;br /&gt;
ALTER TABLE AGENTS_PLACES ADD D$UUID DM_UUID;&lt;br /&gt;
&lt;br /&gt;
ALTER TABLE AGENTS_PLACES ADD D$SRVUPDDT DM_DATETIME;&lt;br /&gt;
&lt;br /&gt;
CREATE UNIQUE INDEX AGENTS_PLACES_IDX1 ON AGENTS_PLACES (D$UUID);&lt;br /&gt;
&lt;br /&gt;
SET TERM ^ ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/******************************************************************************/&lt;br /&gt;
/***                          Triggers for tables                           ***/&lt;br /&gt;
/******************************************************************************/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* Trigger: MARK_DETAIL_TREB_AD_DISTR */&lt;br /&gt;
CREATE OR ALTER TRIGGER AGENTS_PLACES_AD_DISTR FOR AGENTS_PLACES&lt;br /&gt;
ACTIVE AFTER DELETE POSITION 0&lt;br /&gt;
AS&lt;br /&gt;
begin&lt;br /&gt;
    update or insert into g$distribute (TABLENAME,UUID,SOPER,FROM_PROFILE_ID) values ('AGENTS_PLACES',old.d$uuid,2,null) matching (TABLENAME,UUID);&lt;br /&gt;
end&lt;br /&gt;
^&lt;br /&gt;
&lt;br /&gt;
 /* Trigger: MARK_DETAIL_TREB_BI_DISTR */&lt;br /&gt;
CREATE OR ALTER TRIGGER AGENTS_PLACES_BI_DISTR FOR AGENTS_PLACES&lt;br /&gt;
ACTIVE BEFORE INSERT POSITION 0&lt;br /&gt;
AS&lt;br /&gt;
begin&lt;br /&gt;
    if (new.d$srvupddt is null) then&lt;br /&gt;
    begin&lt;br /&gt;
      new.d$srvupddt='2000-01-01';&lt;br /&gt;
      if (new.d$uuid is null) then&lt;br /&gt;
        new.d$uuid=UUID_TO_CHAR(GEN_UUID());&lt;br /&gt;
      update or insert into g$distribute (TABLENAME,UUID,SOPER,FROM_PROFILE_ID) values ('AGENTS_PLACES',new.d$uuid,0,null) matching (TABLENAME,UUID);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
^&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* Trigger: MARK_DETAIL_TREB_BU_DISTR */&lt;br /&gt;
CREATE OR ALTER TRIGGER AGENTS_PLACES_BU_DISTR FOR AGENTS_PLACES&lt;br /&gt;
ACTIVE BEFORE UPDATE POSITION 0&lt;br /&gt;
AS&lt;br /&gt;
begin&lt;br /&gt;
    if (new.D$SRVUPDDT=old.D$SRVUPDDT) then&lt;br /&gt;
        update or insert into g$distribute (TABLENAME,UUID,SOPER,FROM_PROFILE_ID) values ('AGENTS_PLACES',new.d$uuid,1,null) matching (TABLENAME,UUID);&lt;br /&gt;
end&lt;br /&gt;
^&lt;br /&gt;
&lt;br /&gt;
SET TERM ; ^&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Avo</name></author>	</entry>

	</feed>