Проект

Общее

Профиль

Универсальные процедуры и функции » История » Версия 12

Всеволод Дорофеев, 19.02.2017 03:14

1 1 Всеволод Дорофеев
h1. Универсальные процедуры и функции
2 1 Всеволод Дорофеев
3 1 Всеволод Дорофеев
h3. Проверка битых ссылок
4 1 Всеволод Дорофеев
5 1 Всеволод Дорофеев
<pre>
6 1 Всеволод Дорофеев
ЭтоБитаяСсылка = не ЗначениеЗаполнено(Ссылка.ВерсияДанных);
7 1 Всеволод Дорофеев
</pre>
8 1 Всеволод Дорофеев
9 1 Всеволод Дорофеев
h3. Возвращает полное имя объекта метаданных по переданному значению ссылки
10 1 Всеволод Дорофеев
11 1 Всеволод Дорофеев
<pre>
12 1 Всеволод Дорофеев
// Возвращает полное имя объекта метаданных по переданному значению ссылки
13 1 Всеволод Дорофеев
// Например,
14 1 Всеволод Дорофеев
//  "Справочник.Номенклатура";
15 1 Всеволод Дорофеев
//  "Документ.ПриходнаяНакладная"
16 1 Всеволод Дорофеев
//
17 1 Всеволод Дорофеев
// Параметры:
18 1 Всеволод Дорофеев
//  Ссылка - ЛюбаяСсылка - значение ссылки, для которого необходимо получить имя таблицы ИБ
19 1 Всеволод Дорофеев
// 
20 1 Всеволод Дорофеев
// Возвращаемое значение:
21 1 Всеволод Дорофеев
//  Строка - полное имя объекта метаданных для указанного значения ссылки
22 1 Всеволод Дорофеев
//
23 1 Всеволод Дорофеев
Функция ИмяТаблицыПоСсылке(Ссылка) Экспорт
24 1 Всеволод Дорофеев
    
25 1 Всеволод Дорофеев
    Возврат Метаданные.НайтиПоТипу(ТипЗнч(Ссылка)).ПолноеИмя();
26 1 Всеволод Дорофеев
    
27 1 Всеволод Дорофеев
КонецФункции
28 1 Всеволод Дорофеев
</pre>
29 2 Всеволод Дорофеев
30 2 Всеволод Дорофеев
h3. МенеджерИсторииРаботыПользователя
31 3 Всеволод Дорофеев
32 4 Всеволод Дорофеев
<pre>
33 4 Всеволод Дорофеев
// Добавить событие в историю работы пользователя
34 4 Всеволод Дорофеев
ИсторияРаботыПользователя.Добавить(ПолучитьНавигационнуюСсылку(Объект.Ссылка));
35 4 Всеволод Дорофеев
</pre>
36 4 Всеволод Дорофеев
37 3 Всеволод Дорофеев
h3. ОтображениеСостояния
38 5 Всеволод Дорофеев
39 5 Всеволод Дорофеев
h3. Очистка окна сообщений
40 5 Всеволод Дорофеев
41 5 Всеволод Дорофеев
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
42 5 Всеволод Дорофеев
Пример:
43 5 Всеволод Дорофеев
<pre>
44 5 Всеволод Дорофеев
ОчиститьСообщения();
45 5 Всеволод Дорофеев
</pre>
46 6 Всеволод Дорофеев
47 8 Всеволод Дорофеев
h3. Отбор в таблице значений (табличной части) с помощью построителя запроса
48 6 Всеволод Дорофеев
49 6 Всеволод Дорофеев
<pre>
50 6 Всеволод Дорофеев
&НаСервере
51 8 Всеволод Дорофеев
Функция ПолучитьКоличествоПодобраноПоСтрокеНаСервере(ИсходнаяНоменклатура)
52 6 Всеволод Дорофеев
53 6 Всеволод Дорофеев
   ПостроительЗапр = Новый ПостроительЗапроса;
54 8 Всеволод Дорофеев
   ПостроительЗапр.ИсточникДанных = Новый ОписаниеИсточникаДанных(Объект.НоваяНоменклатура.Выгрузить());
55 8 Всеволод Дорофеев
   Отбор = ПостроительЗапр.Отбор.Добавить("ИсходнаяНоменклатура");
56 8 Всеволод Дорофеев
   Отбор.ВидСравнения = ВидСравнения.Равно;
57 8 Всеволод Дорофеев
   Отбор.Значение = ИсходнаяНоменклатура;
58 8 Всеволод Дорофеев
   Отбор.Использование = Истина;
59 6 Всеволод Дорофеев
   ПостроительЗапр.Выполнить();
60 8 Всеволод Дорофеев
   ПостроительЗапр.Результат.Выгрузить().Итог("Количество");
61 6 Всеволод Дорофеев
62 8 Всеволод Дорофеев
КонецФункции
63 6 Всеволод Дорофеев
</pre>
64 9 Всеволод Дорофеев
65 10 Всеволод Дорофеев
h3. Запись справочника
66 9 Всеволод Дорофеев
67 9 Всеволод Дорофеев
<pre>
68 9 Всеволод Дорофеев
Функция ЗаписатьСправочник(ТекущийОбъект,Заголовок="",РежимСообщений="Все",РежимЗагрузки=Ложь) Экспорт
69 9 Всеволод Дорофеев
	
70 9 Всеволод Дорофеев
	ДействиеВыполнено  = Ложь;
71 9 Всеволод Дорофеев
	
72 9 Всеволод Дорофеев
	ВыводитьОшибки     = ?(РежимСообщений="Все" ИЛИ РежимСообщений="Ошибки",Истина,Ложь);
73 9 Всеволод Дорофеев
	ВыводитьИнформацию = ?(РежимСообщений="Все",Истина,Ложь);
74 9 Всеволод Дорофеев
	
75 9 Всеволод Дорофеев
	Попытка
76 9 Всеволод Дорофеев
		Если РежимЗагрузки Тогда
77 9 Всеволод Дорофеев
			ТекущийОбъект.ОбменДанными.Загрузка = Истина;
78 9 Всеволод Дорофеев
		КонецЕсли; 
79 9 Всеволод Дорофеев
		ТекущийОбъект.Записать();
80 9 Всеволод Дорофеев
		ДействиеВыполнено = Истина;
81 9 Всеволод Дорофеев
		Если ВыводитьИнформацию Тогда
82 9 Всеволод Дорофеев
			ТекстСообщения = "Записан справочник """+ТекущийОбъект.Ссылка+""". ";
83 9 Всеволод Дорофеев
			СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Информация);
84 9 Всеволод Дорофеев
		КонецЕсли; 
85 9 Всеволод Дорофеев
	Исключение
86 9 Всеволод Дорофеев
		ДействиеВыполнено = Ложь;						
87 9 Всеволод Дорофеев
		Если ВыводитьОшибки Тогда
88 9 Всеволод Дорофеев
			ТекстСообщения = "Не удалось записать справочник """+ТекущийОбъект.Ссылка+""". "+ОписаниеОшибки();
89 9 Всеволод Дорофеев
			СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Важное);
90 9 Всеволод Дорофеев
		КонецЕсли; 
91 9 Всеволод Дорофеев
	КонецПопытки;
92 9 Всеволод Дорофеев
	
93 9 Всеволод Дорофеев
	Возврат ДействиеВыполнено;
94 9 Всеволод Дорофеев
КонецФункции //ЗаписатьПровестиДокумент()
95 9 Всеволод Дорофеев
</pre>
96 9 Всеволод Дорофеев
97 9 Всеволод Дорофеев
98 9 Всеволод Дорофеев
99 9 Всеволод Дорофеев
h3. Запись и проведение документа
100 9 Всеволод Дорофеев
101 9 Всеволод Дорофеев
<pre>
102 9 Всеволод Дорофеев
// Процедура выполняет запись/проведение/отмену проведения документа.
103 9 Всеволод Дорофеев
//
104 9 Всеволод Дорофеев
// Параметры:
105 9 Всеволод Дорофеев
//  ТекущийОбъект  – ДокументОбъект,СправочникОбъект.
106 9 Всеволод Дорофеев
//  РежимЗаписи    - РежимЗаписиДокумента.
107 9 Всеволод Дорофеев
//  Заголовок      - Строка.
108 9 Всеволод Дорофеев
//  РежимСообщений - Строка: "Нет","Все","Ошибки".
109 9 Всеволод Дорофеев
//
110 9 Всеволод Дорофеев
// Возвращаемое значение:
111 9 Всеволод Дорофеев
//   ДействиеВыполнено   – Булево.
112 9 Всеволод Дорофеев
//
113 9 Всеволод Дорофеев
Функция ЗаписатьПровестиДокумент(ТекущийОбъект,РежимЗаписи,Заголовок="",РежимСообщений="Все") Экспорт
114 9 Всеволод Дорофеев
	
115 9 Всеволод Дорофеев
	ДействиеВыполнено  = Ложь;
116 9 Всеволод Дорофеев
	
117 9 Всеволод Дорофеев
	ВыводитьОшибки     = ?(РежимСообщений="Все" ИЛИ РежимСообщений="Ошибки",Истина,Ложь);
118 9 Всеволод Дорофеев
	ВыводитьИнформацию = ?(РежимСообщений="Все",Истина,Ложь);
119 9 Всеволод Дорофеев
	
120 9 Всеволод Дорофеев
	Если РежимЗаписи = РежимЗаписиДокумента.Запись ИЛИ РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
121 9 Всеволод Дорофеев
		
122 9 Всеволод Дорофеев
		Попытка
123 9 Всеволод Дорофеев
			
124 9 Всеволод Дорофеев
			ТекущийОбъект.Записать(РежимЗаписиДокумента.Запись);
125 9 Всеволод Дорофеев
			ДействиеВыполнено = Истина;
126 9 Всеволод Дорофеев
			Если ВыводитьИнформацию Тогда
127 9 Всеволод Дорофеев
				ТекстСообщения = "Записан документ """+ТекущийОбъект.Ссылка+""". ";
128 9 Всеволод Дорофеев
				СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Информация);
129 9 Всеволод Дорофеев
			КонецЕсли; 
130 9 Всеволод Дорофеев
		Исключение
131 9 Всеволод Дорофеев
			ДействиеВыполнено = Ложь;						
132 9 Всеволод Дорофеев
			Если ВыводитьОшибки Тогда
133 9 Всеволод Дорофеев
				ТекстСообщения = "Не удалось записать документ """+ТекущийОбъект.Ссылка+""". "+ОписаниеОшибки();
134 9 Всеволод Дорофеев
				СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Важное);
135 9 Всеволод Дорофеев
			КонецЕсли; 
136 9 Всеволод Дорофеев
		КонецПопытки;
137 9 Всеволод Дорофеев
		
138 9 Всеволод Дорофеев
	КонецЕсли; 
139 9 Всеволод Дорофеев
	
140 9 Всеволод Дорофеев
	Если РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
141 9 Всеволод Дорофеев
		
142 9 Всеволод Дорофеев
		Попытка
143 9 Всеволод Дорофеев
			
144 9 Всеволод Дорофеев
			ТекущийОбъект.Записать(РежимЗаписиДокумента.Проведение);
145 9 Всеволод Дорофеев
			ДействиеВыполнено = Истина;
146 9 Всеволод Дорофеев
			Если ВыводитьИнформацию Тогда
147 9 Всеволод Дорофеев
				ТекстСообщения = "Проведен документ """+ТекущийОбъект.Ссылка+""". ";
148 9 Всеволод Дорофеев
				СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Информация);
149 9 Всеволод Дорофеев
			КонецЕсли; 			
150 9 Всеволод Дорофеев
		Исключение
151 9 Всеволод Дорофеев
			ДействиеВыполнено = Ложь;						
152 9 Всеволод Дорофеев
			Если ВыводитьОшибки Тогда
153 9 Всеволод Дорофеев
				ТекстСообщения = "Не удалось провести документ """+ТекущийОбъект.Ссылка+""". "+ОписаниеОшибки();
154 9 Всеволод Дорофеев
				СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Важное);
155 9 Всеволод Дорофеев
			КонецЕсли; 
156 9 Всеволод Дорофеев
		КонецПопытки;
157 9 Всеволод Дорофеев
		
158 9 Всеволод Дорофеев
	КонецЕсли; 
159 9 Всеволод Дорофеев
	
160 9 Всеволод Дорофеев
	Если РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения Тогда
161 9 Всеволод Дорофеев
		
162 9 Всеволод Дорофеев
		Попытка
163 9 Всеволод Дорофеев
			ТекущийОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
164 9 Всеволод Дорофеев
			ДействиеВыполнено = Истина;
165 9 Всеволод Дорофеев
			Если ВыводитьИнформацию Тогда
166 9 Всеволод Дорофеев
				ТекстСообщения = "Отменено проведение документа """+ТекущийОбъект.Ссылка+""". ";
167 9 Всеволод Дорофеев
				СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Информация);
168 9 Всеволод Дорофеев
			КонецЕсли; 			
169 9 Всеволод Дорофеев
		Исключение
170 9 Всеволод Дорофеев
			ДействиеВыполнено = Ложь;						
171 9 Всеволод Дорофеев
			Если ВыводитьОшибки Тогда
172 9 Всеволод Дорофеев
				ТекстСообщения = "Не удалось отменить проведение документа """+ТекущийОбъект.Ссылка+""". "+ОписаниеОшибки();
173 9 Всеволод Дорофеев
				СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Важное);
174 9 Всеволод Дорофеев
			КонецЕсли; 
175 9 Всеволод Дорофеев
		КонецПопытки;
176 9 Всеволод Дорофеев
		
177 9 Всеволод Дорофеев
	КонецЕсли; 
178 9 Всеволод Дорофеев
	
179 9 Всеволод Дорофеев
	Возврат ДействиеВыполнено;
180 9 Всеволод Дорофеев
КонецФункции // ЗаписатьПровестиДокумент()
181 9 Всеволод Дорофеев
182 9 Всеволод Дорофеев
</pre>
183 11 Всеволод Дорофеев
184 11 Всеволод Дорофеев
h3. Проверка на пустую дату
185 11 Всеволод Дорофеев
186 11 Всеволод Дорофеев
Пустая дата
187 11 Всеволод Дорофеев
<pre>
188 11 Всеволод Дорофеев
Дата("00010101");
189 12 Всеволод Дорофеев
Дата(1, 1, 1);
190 12 Всеволод Дорофеев
Дата("00010101000000");
191 12 Всеволод Дорофеев
Дата("0001-01-01");
192 11 Всеволод Дорофеев
</pre>