ПоказатьОповещениеПользователя("Документ не записан!", "http://doc.ru", "О правилах заполнения документа, читайте здесь!", БиблиотекаКартинок.Важно);
#Если Клиент Тогда Форма = Источник.ПолучитьФорму(); Если Форма.Открыта() Тогда ПоказатьОповещениеПользователя("Ошибка", ПолучитьНавигационнуюСсылку(Источник.Ссылка), "Не указана организация. Невозможно распределить платежи по документам расчетов с контрагентом", БиблиотекаКартинок.Ошибка32); КонецЕсли; #КонецЕсли
WshShell=СоздатьОбъект("WScript.Shell"); WshShell.Popup("Текст сообщения",,"Текст заголовка",20);
//Процедура выводит или убирает сообщение мессенджера и иконку, в зависимости от бПарам Процедура ВывестиСообщениеМессенджера(бПарам = Истина) Экспорт #Если Клиент Тогда сКаталог = СокрЛП(Константы.КаталогПолногоДоступа.Получить())+"БП\MessageService"; ИмяФайла = сКаталог + "\autohotkey.exe"; Файл = Новый Файл(ИмяФайла); ИмяФайлаИНИ = сКаталог + "\autohotkey.ini"; Если бПарам Тогда ИмяФайлаИНИ_Задачи = сКаталог + "\autohotkey_Yes.ini"; Иначе ИмяФайлаИНИ_Задачи = сКаталог + "\autohotkey_No.ini"; КонецЕсли; ФайлИНИ_Задачи = Новый Файл(ИмяФайлаИНИ_Задачи); Если Файл.Существует() И ФайлИНИ_Задачи.Существует() Тогда Попытка КопироватьФайл(ИмяФайлаИНИ_Задачи,ИмяФайлаИНИ); ЗапуститьПриложение(ИмяФайла, сКаталог); Если бПарам Тогда ПараметрыСеанса.бСостояниеМессенджера = Истина; Иначе ПараметрыСеанса.бСостояниеМессенджера = Ложь; КонецЕсли; Исключение КонецПопытки; КонецЕсли; #КонецЕсли КонецПроцедуры
Процедура ТЕСТ_ВыполнитьНажатие(Кнопка) ДатаНач = Дата(2009, 12, 31); ДатаКон = Дата(2005, 1, 10); Лет=0; Мес=0; Дн=0; РазобратьРазностьДат(ДатаНач, ДатаКон, Лет, Мес, Дн); ЛетС = ФормаМножественногоЧисла("год","года","лет",Лет); МесС = ФормаМножественногоЧисла("месяц","месяца","месяцев",Мес); ДнС = ФормаМножественногоЧисла("день","дня","дней",Дн); Сообщить(?(Лет>0,Строка(Лет)+" "+ЛетС,"")+" "+?(Мес>0,Строка(Мес)+" "+МесС,"")+" "+Строка(дн)+" "+ДнС); // Результат будет : 4 года 11 месяцев 21 день КонецПроцедуры // Получить разность дат Процедура РазобратьРазностьДат(Дата1, Дата2, Лет = 0, Месяцев = 0, Дней = 0) Лет = 0; Месяцев = 0; Дней = 0; Если Дата1 > Дата2 Тогда ВременнаяДата = Дата1; Если День(ВременнаяДата) < День(Дата2) Тогда Дней = (ВременнаяДата - ДобавитьМесяц(ВременнаяДата,-1))/86400; ВременнаяДата = ДобавитьМесяц(ВременнаяДата,-1); КонецЕсли; Если Месяц(ВременнаяДата) < Месяц(Дата2) Тогда ВременнаяДата = ДобавитьМесяц(ВременнаяДата,-12); Месяцев = 12; КонецЕсли; Лет = Макс( Год(ВременнаяДата) - Год(Дата2), 0); Месяцев = Макс(Месяцев + Месяц(ВременнаяДата) - Месяц(Дата2), 0); Дней = Макс(Дней + День(ВременнаяДата) - День(Дата2), 0); // скорректируем отображаемое значение, если ""вмешалось"" разное количество дней в месяцах Если Дата2 <> (ДобавитьМесяц(Дата1,-Лет * 12-Месяцев)-Дней * 86400) Тогда Дней = Дней + (День(КонецМесяца(Дата2)) - День(НачалоМесяца(Дата2))) - (День(КонецМесяца(ДобавитьМесяц(Дата1,-1))) - День(НачалоМесяца(ДобавитьМесяц(Дата1,-1)))); КонецЕсли; КонецЕсли; КонецПроцедуры // Сформировать множественное число Функция ФормаМножественногоЧисла(Слово1, Слово2, Слово3, Знач ЦелоеЧисло) // Изменим знак целого числа, иначе отрицательные числа будут неправильно преобразовываться Если ЦелоеЧисло < 0 Тогда ЦелоеЧисло = -1 * ЦелоеЧисло; КонецЕсли; Если ЦелоеЧисло <> Цел(ЦелоеЧисло) Тогда // для нецелых чисел - всегда вторая форма Возврат Слово2; КонецЕсли; // остаток Остаток = ЦелоеЧисло%10; Если (ЦелоеЧисло >10) И (ЦелоеЧисло<20) Тогда // для второго десятка - всегда третья форма Возврат Слово3; ИначеЕсли Остаток=1 Тогда Возврат Слово1; ИначеЕсли (Остаток>1) И (Остаток<5) Тогда Возврат Слово2; Иначе Возврат Слово3; КонецЕсли; КонецФункции