&НаКлиенте Процедура Команда1(Команда) Сообщить(ПолучитьБлижайшуюРабочуюДатуОтИсходнойДаты(ДатаКалендаря)); КонецПроцедуры Функция ПолучитьБлижайшуюРабочуюДатуОтИсходнойДаты(Знач ИсходнаяДата) ИсходнаяДата = НачалоДня(ИсходнаяДата); ИсходнаяДата = ИсходнаяДата + 24 * 60 * 60; Пока Истина Цикл Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РегламентированныйПроизводственныйКалендарь.ВидДня |ИЗ | РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь |ГДЕ | РегламентированныйПроизводственныйКалендарь.ДатаКалендаря = &ДатаКалендаря"; Запрос.УстановитьПараметр("ДатаКалендаря", ИсходнаяДата); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Если ВыборкаДетальныеЗаписи.ВидДня = ПредопределенноеЗначение("Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий") Тогда Возврат ИсходнаяДата; Иначе ИсходнаяДата = НачалоДня(ИсходнаяДата); ИсходнаяДата = ИсходнаяДата + 24 * 60 * 60; КонецЕсли; КонецЦикла; КонецЦикла; КонецФункции
8 июл. 2019 г.
Получить ближайшую рабочую дату от произвольной даты
Ввести на основании (на клиенте)
&НаКлиенте Процедура ТранспортнаяНакладная(Команда) Форма = ПолучитьФорму("Документ.ТранспортнаНакладна.Форма.ФормаДокумента"); ДанныеФормы = Форма.Объект; ТранспортнаяНакладнаяСервер(ДанныеФормы); КопироватьДанныеФормы(ДанныеФормы, Форма.Объект); Форма.Открыть(); КонецПроцедуры &НаСервере Процедура ТранспортнаяНакладнаяСервер(ДанныеФормы) текДок = Элементы.Список.ТекущаяСтрока.Ссылка; Док = ДанныеФормыВЗначение(ДанныеФормы, Тип("ДокументОбъект.ТранспортнаНакладна")); Док.Заполнить(текДок); ЗначениеВДанныеФормы(Док, ДанныеФормы); КонецПроцедуры
Записать документ без проведения
ДокОбъект = Ссылка.ПолучитьОбъект(); Если ДокОбъект.Проведен Тогда ДокОбъект.Проведен = Истина; ИначеЕсли ДокОбъект.Проведен = Ложь Тогда ИначеЕсли ДокОбъект.ПомеченНаУдаления Тогда ДокОбъект.ПомеченНаУдаление = Истина; КонецЕсли; ДокОбъект.ОбменДанными.Загрузка = Истина; ДокОбъект.Записать();
13 мар. 2019 г.
Сократить ссылки через 1С
Что бы сократить ссылку через 1С используя сайт https://clck.ru/ пишем
Процедура КнопкаВыполнитьНажатие(Кнопка) Сообщить(СократитьСсылку("http://copyraite.blogspot.com")); КонецПроцедуры Функция СократитьСсылку(Ссылка) Экспорт Ссылка = КодироватьСтроку(Ссылка, СпособКодированияСтроки.КодировкаURL,); Адрес = "https://clck.ru/--?url="+Ссылка; ХМЛХТТП = ПолучитьCOMОбъект("", "Microsoft.XMLHTTP"); ХМЛХТТП.Open("GET", Адрес, Ложь); ХМЛХТТП.Send(Null); Возврат СокрЛП(ХМЛХТТП.ResponseText); КонецФункции
для использования https://is.gd/ сервиса изменяем только адрес сервиса и описания параметровПроцедура КнопкаВыполнитьНажатие(Кнопка) Сообщить(СократитьСсылку("http://copyraite.blogspot.com")); КонецПроцедуры Функция СократитьСсылку(Ссылка) Экспорт Ссылка = КодироватьСтроку(Ссылка, СпособКодированияСтроки.КодировкаURL,); Адрес = "https://is.gd/create.php?format=simple&url="+Ссылка; ХМЛХТТП = ПолучитьCOMОбъект("", "Microsoft.XMLHTTP"); ХМЛХТТП.Open("GET", Адрес, Ложь); ХМЛХТТП.Send(Null); Возврат СокрЛП(ХМЛХТТП.ResponseText); КонецФункции
3 мар. 2019 г.
7 янв. 2019 г.
Проверить открыта ли форма?
&НаКлиенте
Функция ДокументЗаказНаОтгрузкуОткрыт()
Заказ = ПолучитьЗаказНаОтгрузку(); // Ссылка на заказ
Если Заказ.Пустая() Тогда
Возврат Ложь;
КонецЕсли;
Окна = ПолучитьОкна();
Для Каждого Окно Из Окна Цикл
Если Окно.Заголовок = Строка(Заказ) Тогда
Если Вопрос("Для правильной работы формы контроля, открытый подчиненный документ ""ЗаказНаОтгрузку"" должен быть закрыт. Закрыть документ?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Нет Тогда
Предупреждение("Команда не может быть выполнена, если есть открытый подчиненный документ ""ЗаказНаОтгрузку""");
Возврат Истина; //ошибка
Иначе
Если Окно.Содержимое.Количество() = 0 Тогда
Предупреждение("Ошибка при закрытии подчиненной формы ""ЗаказКлиента""");
Возврат Истина; //ошибка
КонецЕсли;
Форма = Окно.ПолучитьСодержимое();
Если Форма <> Неопределено И ТипЗнч(Форма) = Тип("УправляемаяФорма") Тогда
Форма.Закрыть();
КонецЕсли;
Возврат Ложь; //открытая форма закрыта
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Ложь; //открытая форма не найдена
КонецФункции
Необязательные параметры в запросе
ВЫБРАТЬ
НАЧАЛОПЕРИОДА(Работы.Дата, МЕСЯЦ) КАК Месяц,
Работы.Ссылка КАК Документ,
Работы.Контрагент КАК Контрагент,
СУММА(Работы.СуммаДокумента) КАК СуммаДокумента,
СУММА(ЕСТЬNULL(Оплата.Оплачено, 0)) КАК Оплачено,
СУММА(Работы.СуммаДокумента - ЕСТЬNULL(Оплата.Оплачено, 0)) КАК Долг
ИЗ
Документ.Работы КАК Работы
ЛЕВОЕ СОЕДИНЕНИЕ Документ.Оплата КАК Оплата
ПО (Оплата.Основание = Работы.Ссылка)
И Работы.Проведен = Оплата.Проведен
ГДЕ
Работы.Проведен
{ГДЕ
(Работы.Дата МЕЖДУ &Начало И &Конец)}
СГРУППИРОВАТЬ ПО
Работы.Ссылка,
Работы.Контрагент,
НАЧАЛОПЕРИОДА(Работы.Дата, МЕСЯЦ)
Передать парамтр при закрытии формы
Форма1
&НаКлиенте Процедура ДобавитьПриИзменении(Элемент) ФормаВводаНовойРаботы = ПолучитьФорму("Документ.Работы.Форма.Форма2"); ФормаВводаНовойРаботы.Открыть(); КонецПроцедуры
Форма2
&НаКлиенте Процедура ЗакрытьФорму(Команда) Закрыть(); КонецПроцедуры &НаКлиенте Процедура ПриЗакрытии(ЗавершениеРаботы) Оповестить(Комментарий); //реквизит формы Комментарий КонецПроцедуры
&НаКлиенте Процедура ДобавитьПриИзменении(Элемент) ФормаВводаНовойРаботы = ПолучитьФорму("Документ.Работы.Форма.Форма2"); ФормаВводаНовойРаботы.Открыть(); КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
ПараметрКоторыйПередалиПриЗакрытии = ИмяСобытия; // переданное значения реквизита Комментарий
КонецПроцедуры
Форма2
&НаКлиенте Процедура ЗакрытьФорму(Команда) Закрыть(); КонецПроцедуры &НаКлиенте Процедура ПриЗакрытии(ЗавершениеРаботы) Оповестить(Комментарий); //реквизит формы Комментарий КонецПроцедуры
Подписаться на:
Сообщения (Atom)