Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 мар 2024, 14:53

Вывести свободную дату

Автор Ermak1985, 01 фев 2016, 12:15

0 Пользователей и 1 гость просматривают эту тему.

Ermak1985

Цитата: Rasty от 03 фев 2016, 11:25
у вас есть время заявки, вы можете вытащить время окончания?
КАК?

Rasty

у вас есть время заявки, вы его получаете из запроса, какой у него тип?
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Ermak1985

Цитата: Rasty от 03 фев 2016, 12:37
у вас есть время заявки, вы его получаете из запроса, какой у него тип?
Элемент.ВремяЗаявки ТИП - ПеречислениеСсылка.ВремяЗаявки

Rasty

СтрПолучитьСтроку(СтрЗаменить(Строка(ВремяЗаявки),"-"),2) ===> получите строку окончания заявки, ее переведите в дату
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Ermak1985

Цитата: Rasty от 03 фев 2016, 16:04
СтрПолучитьСтроку(СтрЗаменить(Строка(ВремяЗаявки),"-"),2) ===> получите строку окончания заявки, ее переведите в дату
{Форма.Форма.Форма(48,60)}: Ожидается символ ','
      ДатаТ=СтрПолучитьСтроку(СтрЗаменить(Строка(Стр.Время),"-"<<?>>),2); (Проверка: Толстый клиент (обычное приложение))

Rasty

вы что нибудь кроме ctrl c ctrl v умеете?
СтрПолучитьСтроку(СтрЗаменить(Строка(ВремяЗаявки),"-",Символы.ПС),2)
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Ermak1985

Цитата: Rasty от 03 фев 2016, 16:16
вы что нибудь кроме ctrl c ctrl v умеете?
СтрПолучитьСтроку(СтрЗаменить(Строка(ВремяЗаявки),"-",Символы.ПС),2)
Мне это время не нужно получать. У меня время это Перечисление, задается строго с 08:00-12:00 и с 12:00-15:00. Создавая документ я выбираю время или 08:00-12:00 или 12:00-15:00, зачем мне 12:00? я не могу понять вашу идею 
Добавлено: 03 фев 2016, 16:26


Если мне искать свободную то надо или 12:00-15:00 или 08:00-12:00

Rasty

ну и сравнивайте тогда полученное время с другими временами, я должен догадаться о том что у вас есть что?
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Ermak1985

Цитата: Rasty от 03 фев 2016, 16:31
ну и сравнивайте тогда полученное время с другими временами, я должен догадаться о том что у вас есть что?
Я здесь сравниваю количество заявок которые запланированы и которые уже использованы. А как сделать чтобы выводила свободную дату и время, в моем коде что то не так и я не могу понять.

Фильтр = Новый Структура();     
Фильтр.Вставить("Участок",Участок);
Фильтр.Вставить("ВремяЗаявки",ВремяЗаявки);
Фильтр.Вставить("ВидЗаявки",ВидЗаявки);
КоличествоРЗ=РегистрыСведений.ПланировщикРемонтныхЗаявок.ПолучитьПоследнее(КонецДня(ТекДат),Фильтр).Количество;

ТЗ=Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("Дата");
    ТЗ.Колонки.Добавить("Время");
    ТЗ.Колонки.Добавить("Количество");
   
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |    ИсторияЗаявкиЕдиноеОкно.Период КАК Период,
    |    ИсторияЗаявкиЕдиноеОкно.Участок КАК Участок,
    |    КОЛИЧЕСТВО(ИсторияЗаявкиЕдиноеОкно.Статус) КАК Количество,
    |    ИсторияЗаявкиЕдиноеОкно.ВремяЗаявки КАК ВремяЗаявки,
    |    ИсторияЗаявкиЕдиноеОкно.ВидЗаявки КАК ВидЗаявки
    |ИЗ
    |    РегистрСведений.ИсторияЗаявкиЕдиноеОкно КАК ИсторияЗаявкиЕдиноеОкно
    |ГДЕ
    |    ИсторияЗаявкиЕдиноеОкно.Участок = &Участок
    |    И ИсторияЗаявкиЕдиноеОкно.ВидЗаявки = &ВидЗаявки
    |
    |СГРУППИРОВАТЬ ПО
    |    ИсторияЗаявкиЕдиноеОкно.Период,
    |    ИсторияЗаявкиЕдиноеОкно.Участок,
    |    ИсторияЗаявкиЕдиноеОкно.ВремяЗаявки,
    |    ИсторияЗаявкиЕдиноеОкно.ВидЗаявки";
   
    Запрос.УстановитьПараметр("Участок",Участок);
    Запрос.УстановитьПараметр("ВидЗаявки",ВидЗаявки);
    Результат = Запрос.Выполнить().Выгрузить();
   
    Для Каждого Элемент Из Результат Цикл
        Стр=ТЗ.Добавить();
        Стр.Дата=Элемент.Период;
        Стр.Время=Элемент.ВремяЗаявки;
        Стр.Количество=Элемент.Количество;
        КоличествоЗаявок=Стр.Количество;
Если КоличествоЗаявок=Неопределено или КоличествоЗаявок < КоличествоРЗ или КоличествоРЗ=Неопределено Тогда
Предупреждение("Дата свободна "+ТекДат);
Иначе
Предупреждение("Дата занята "+ТекДат);
ТекДат=ТекДат+86400;
КонецЕсли;
КонецЦикла;

Rasty

Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск