Помогите С Решением Задачи

Тема в разделе "1C и всё что с ней связано", создана пользователем Allexei, 28 фев 2012.

  1. Allexei

    Allexei Well-Known Member

    Репутация:
    0
    Регистрация:
    2 май 2008
    Сообщения:
    322
    Симпатии:
    1
    Здравствуйте. Суть вот такая. Есть компания которая занимается оказанием услуг. Услуги оказываются круглосуточно, одновременно может оказываться только одна услуга. Каждая услуга имеет свою продолжительность по времени. Необходимо организовать "учет" оказания услуг и проверку проведения документа реализации в котором есть услуга таким образом что бы интервалы услуг не пересекались. Например менеджер Иванов провел реализацию услуги.Услуга начнет оказываться в 17-00 и будет оказываться в течении часа, т.е. до 18-00. Так вот в этот период нельзя больше оказывать услуги и реализация в которой оказание услуги назначено к примеру на 17-30 должна ругнутся и сказать что ни ни, время занято. Так вот товарищи, вопрос! Как лучше организовать учет таких услуг. Сейчас на ум приходит только регистр сведений у которого будут измерения дата начала и дата окончания. Проверку на вхождение строки с услугой по проводимой РТУ - как найти думаю смогу.Но вот вопрос - как сформировать отчет по свободному времени. Например есть график услуг {Усл1 - 12-00:15-00; Усл-2 - 15-30:19-00} в отчет должны попасть три интервала с начала дня до 12-00, второй с 15-00 до 15-30 и третий с 19-00 и до 23.59.59. Подскажите кто что может...

    зы. Задача из сборника на спеца по УТ.
     
  2. Дайнеко

    Дайнеко Well-Known Member

    Репутация:
    0
    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    * Если для практики - я бы регистр не делал. Достаточно самих документов с их информаией. А вот для задачи - да, конечно нужен.
    * По свободному времени:
    - запрос по клиенту и документам одного дня.
    - можно выгрузить в ТЗ "ЗанятоеВремя" с колонками "Нач", "Кон"
    - перебрал результат и хитрым алгоритмом родил новую ТЗ "СвободноеВремя" (СВ).

    Некоторые соображения:
    - заводишь 2 переменных Нач, Кон = 00:00:00
    - каждый встреченный док-т изменяет их и создает строку в "СВ"
     
  3. Darlock

    Darlock Well-Known Member

    Репутация:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    560
    Симпатии:
    1
    Комрады, у меня мысль только одна:
    1 - без регистра сведений (РС) никак
    2 - отчет на базе диаграммы Ганта

    При проведении заполняем периоды оказания. А в диаграмму (она умеет работать с периодами, выбрасываемм свободны и занятые интервалы. Регистратором по РС - занимаем период, по которому будет оказываться услуга и следовательно на диаграмме увидим, в какие периоды свободно, а в какие - нихт. Думаю, Гантом решить фрагмент по отчету проще, потому что платформой он более расположен к решению подобных задач.
     
  4. Allexei

    Allexei Well-Known Member

    Репутация:
    0
    Регистрация:
    2 май 2008
    Сообщения:
    322
    Симпатии:
    1
    Попробую сделать по вашим советам.Как сделаю отпишусь что получилось.
     
  5. Allexei

    Allexei Well-Known Member

    Репутация:
    0
    Регистрация:
    2 май 2008
    Сообщения:
    322
    Симпатии:
    1
    Darlock . с диаграммой получилось само то!

    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Вот такой код получился</div></div><div class="sp-body"><div class="sp-content">
    Код:
    &НаКлиенте
    Процедура Команда2(Команда)
    
    Диаграмма = ЭтаФорма.ДГ;
    
    //Отключим автоопределение интервалов
    Диаграмма.АвтоОпределениеПолногоИнтервала=Ложь;
    Диаграмма.УстановитьПолныйИнтервал(НачалоМесяца(ТекущаяДата()), КонецМесяца(ТекущаяДата()));
    
    //Добавим новую точку (точка это то количество линий по вертикали(Услуга))
    Новаяточка = Диаграмма.Точки.Добавить();
    Новаяточка.Текст = "Услуги";	
    
    //Добавим новую серию(серия это как бы значение которое устанавливается для диаграммы(работа с услугой))
    НоваяСерия = Диаграмма.Серии.Добавить();
    НоваяСерия.Текст = "Занятое время";
    
    Значение = Диаграмма.ПолучитьЗначение(Новаяточка,НоваяСерия);
    
    СписокДат = ПолучитьДанныеССервера();
    Для Каждого ТекСтрока Из СписокДат Цикл
    Интервал = Значение.Добавить();
    ЗаполнитьЗначенияСвойств(Интервал, ТекСтрока.Значение);
    КонецЦикла;
    КонецПроцедуры
    
    &НаСервере
    Функция ПолучитьДанныеССервера()
    
    СпискоДат = Новый СписокЗначений;
    
    Запрос = Новый Запрос("ВЫБРАТЬ
    |	ПериодыОказанияУслуг.ДатаНачала КАК ДатаНачала,
    |	ПериодыОказанияУслуг.ДатаОкончания
    |ИЗ
    |	РегистрСведений.ПериодыОказанияУслуг КАК ПериодыОказанияУслуг
    |
    |УПОРЯДОЧИТЬ ПО
    |	ДатаНачала");
    
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    
    Пока Выборка.Следующий() Цикл
    ПараметрыЗаполннеия = Новый Структура("Начало, Конец", Выборка.ДатаНачала, Выборка.ДатаОкончания);
    СпискоДат.Добавить(ПараметрыЗаполннеия);		
    КонецЦикла;
    
    Возврат СпискоДат;	
    КонецФункции
     
  6. Дайнеко

    Дайнеко Well-Known Member

    Репутация:
    0
    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Блестяще, Darlock!

    Вот только в запросе 1) нет привязки к клиенту 2) с моей нелюбовью плодить объекты не могу понять, ведь всю информацию можно получить запросом по документам?
     
  7. Allexei

    Allexei Well-Known Member

    Репутация:
    0
    Регистрация:
    2 май 2008
    Сообщения:
    322
    Симпатии:
    1
    Дайнеко , данная задача не является "реальной". Это пример из комплекта вопросов по УТ. По условию задачи привязки к клиенту нет.Указано только что
    ""Услуги оказываются круглосуточно, одновременно может оказываться только одна услуга""
    (наверное у них только один мастер).
    Что касаеться - брать информацию из документов", думаю это будет сразу не зачет при сдаче экзамена.
    По Вашим предложениям:
    * По свободному времени:
    - запрос по клиенту и документам одного дня. - клиент не требуется, в документе возможно оказание услуг будушей датой, например через неделю
    - можно выгрузить в ТЗ "ЗанятоеВремя" с колонками "Нач", "Кон" - ТЗ, Шурик, вы комсомолец? Это же не наш метод!
    - перебрал результат и хитрым алгоритмом родил новую ТЗ "СвободноеВремя" (СВ). - хитрые алгоритмы, а зачем они когда есть запрос и возможность проверит входит ли дата начала оказания новой услуги в один из интервалов уже зарегистрированных услуг по условию Дата=>ДатаНач и Дата< ДатаОкон. Если условие выполнено - то услуга не может быть оказана.
    ----------------------------
    Но все равно, большое спасибо за внимание к моей теме и за советы :)
     
  8. Allexei

    Allexei Well-Known Member

    Репутация:
    0
    Регистрация:
    2 май 2008
    Сообщения:
    322
    Симпатии:
    1
  9. An707

    An707 Гость

    Репутация:
    0
    Здравствуйте! Проблема такая. Программа Штрих-М Ресторан. Существует стандартный отчет Рейтинг продаж. необходимо сделать его по Клиенту. В запросе отчета используется регистр прродажи. Никак не могу выйти на клиента. В торговом предприятие тот же отчет сделать получилось. Может быть, кто то подскажет...
    Не там, наверное, вопрос написала (((
     
  10. Гость

    Репутация:
    0
    Помогите решить задачи в TBasic 9 класс
    нужно срочно пожалуйста, мучаюсь второй день

    начать с ввода и вывода матрицы


    1)Найти треть произведения элементов кратных три массива А (4,7) водимого из блока данных

    2)Матрица А (К,К) формируется датчиком случайных чисел из интервала (10,45). Найти пятую часть произведение элементов последней строки матрицы кратных 5 и сумму положительных элементов главной диагонали. Определить разность полученных элементов

    3)Матрица А (9,9) формируется датчиком случайных чисел из интервала (12,55). Найти среднее арифметическое значение нечетных по значению элементов последнего столбца матрицы и сумму элементов больших 25 главной диагонали матрицы

    4)Длина матрицы А (5,5) элементы которые формируются датчиком случайных чисел из интервала(-20,70) Найти среднее арифметическое значение нечетных по сравнению элементов побочной диагонали.

    5)Длина матрицы А (5,5) элементы которые формируются датчиком случайных чисел из интервала(-40-10) Найти среднее арифметическое значение нечетных по сравнению элементов главной диагонали.

    6)Длина матрицы С (К,К) найти половину сумы элементов побочной диагонали , больших 5

    7)Длина матрицы С (5,5)найти среднее арифметическое значение элементов диагоналей матрицы С

    8)Длина матрицы С (7,7)найти среднее арифметическое значение элементов побочной диагонали и половину суммы элементов главной диагонали матрицей С
     
  11. unknown181538

    unknown181538 НеГуру

    Репутация:
    0
    Регистрация:
    28 дек 2008
    Сообщения:
    1.417
    Симпатии:
    0
    Анна32, тебе не кажется, что ты написала не в том разделе?)
    Даже без этого, непонятно, что у тебя не получается, и т.п.
    Где-то вверху форума есть ссылка на "Что такое форум?".
     
  12. Allexei

    Allexei Well-Known Member

    Репутация:
    0
    Регистрация:
    2 май 2008
    Сообщения:
    322
    Симпатии:
    1
    Ой, скажите где такая школа!Я туда свою дочь отдам;)
     
  13. AndreyRuzveltovich

    AndreyRuzveltovich Гость

    Репутация:
    0
    Выручайте друзья! У кого нибуд был такой глюк в Штрих М Продуктовый магазин на 8.2 - клава работает, как бы сама по себе то есть при заполнении документа или справочника при нажатии Entera перескакивает через строчку или через две, короче нарушена очередность. Конфигурация стандартная ни кто ни чего не писал. Обновил до последней конфигурации 5.1.604 ни чего не изменилось.
     
Загрузка...

Поделиться этой страницей