Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Печать Календаря
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
burza
Может у кого есть наброски как это реализовать. Нужна напечатать календарик на месяц в дни подставить значения из документа.
xlmel
Сделайте запрос к производственному календарю за определенный период с левым соединением к документу по дате
burza
xlmel @ Сегодня, 17:48 необходимо зарегистрироваться для просмотра ссылки ,
а как это то напечатать?)
xlmel
как вариант вывести в табличный документ и его напечатать. Или можно на СКД сделать простой отчет, туда запихнуть этот запрос.
burza
может у кого-то есть что-то готовое для печати календаря,буду благодарен.

xlmel @ Сегодня, 18:14 необходимо зарегистрироваться для просмотра ссылки ,
нужно понять еще какой день из чилса. Понедельник,вторник и .тд
xlmel
burza @ Вчера, 18:13 необходимо зарегистрироваться для просмотра ссылки ,
Так есть же функция ДеньНедели. Конечно она выдает число, но Вы можете добавить массив или перечисление с днями недели и выводить.
burza
Сейчас выводит просто календарь на печать. а нужно в день подставлять ВидЗаписи . куда прикрутить?

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

    НачалоМесяца = НачалоМесяца(Ссылка.Дата);
    НачалоМесяцаСлед = ДобавитьМесяц(НачалоМесяца, 1);
        
    Макет = Документы.КалендарьДляВодителя.ПолучитьМакет("Макет");
    ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПечатьСпецификации_Макет";  
    
    Шапка = Макет.ПолучитьОбласть("Шапка");
    
    ОблДень = Макет.ПолучитьОбласть("Неделя|ДеньНедели");
    ОблДень1 = Макет.ПолучитьОбласть("Неделя|ДеньНеделиВнеМесяца");
    
    ТабДок.Вывести(Шапка);
    
    Начало = ДеньНедели(НачалоМесяца);
    День = НачалоМесяца;

    ВставлятьРазделительСтраниц = Ложь;
    
    //Пока Выборка.Следующий() Цикл
        
        Если ВставлятьРазделительСтраниц Тогда
            ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
        
        
        Строка = Новый ТабличныйДокумент;
        Если Начало<>1 Тогда
            Для Ном = 1 по Начало - 1 Цикл
                ОблДень1.Параметры.День = День(НачалоМесяца - (Начало - 1)*24*60*60);
                Строка.Присоединить(ОблДень1);
            КонецЦикла;
        КонецЕсли;
        
        НД_ТД = НачалоДня(ТекущаяДата());
        ЖирнаяЛиния = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 2);
        ОбчнаяЛиния = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
        
        Пока День < НачалоМесяцаСлед Цикл
            
            ОблДень.Параметры.День = День(День);
            Если День = НД_ТД Тогда
                мОблДень = ОблДень.Область(1,1, 5,2);
                //мОблДень.ЦветФона = WebЦвета.СветлоКоралловый;
                Строка.Присоединить(ОблДень);
                мОблДень.ЦветФона = Новый Цвет;
            Иначе
                Строка.Присоединить(ОблДень);
            КонецЕсли;
            ДеньНедели = ДеньНедели(День); //// Получаем номер дня недели
            
            Если ДеньНедели = 7 Тогда
                ТабДок.Вывести(Строка);
                Строка = Новый ТабличныйДокумент;
            КонецЕсли;
            День = День + 24*60*60;
        КонецЦикла;
        
        
        Если ДеньНедели <> 7 Тогда
            Для Ном = ДеньНедели+1 по 7 Цикл
                ОблДень1.Параметры.День = День(День);
                Строка.Присоединить(ОблДень1);
                День = День + 24*60*60;
            КонецЦикла;
            ТабДок.Вывести(Строка);
        КонецЕсли;
        
        
        ВставлятьРазделительСтраниц = Истина;
        
    //КонецЦикла;


burza @ Сегодня, 11:58 необходимо зарегистрироваться для просмотра ссылки ,
Отвечаю сам себе. может кому пригодиться
    ТабДок.Очистить();

    НачалоМесяца = НачалоМесяца(Ссылка.Дата);
    НачалоМесяцаСлед = ДобавитьМесяц(НачалоМесяца, 1);
        
    Макет = Документы.КалендарьДляВодителя.ПолучитьМакет("Макет");
    ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПечатьСпецификации_Макет";  
    
    Шапка = Макет.ПолучитьОбласть("Шапка");
    
    ОблДень = Макет.ПолучитьОбласть("Неделя|ДеньНедели");
    ОблДень1 = Макет.ПолучитьОбласть("Неделя|ДеньНеделиВнеМесяца");
    
    ТабДок.Вывести(Шапка);
    
    Начало = ДеньНедели(НачалоМесяца);
    День = НачалоМесяца;

    ВставлятьРазделительСтраниц = Ложь;
    
    //Пока Выборка.Следующий() Цикл
        
        Если ВставлятьРазделительСтраниц Тогда
            ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
        
        
        Строка = Новый ТабличныйДокумент;
        Если Начало<>1 Тогда
            Для Ном = 1 по Начало - 1 Цикл
                ОблДень1.Параметры.День = День(НачалоМесяца - (Начало - 1)*24*60*60);
                Строка.Присоединить(ОблДень1);
            КонецЦикла;
        КонецЕсли;
        
        НД_ТД = НачалоДня(ТекущаяДата());
        ЖирнаяЛиния = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 2);
        ОбчнаяЛиния = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
        
        Пока День < НачалоМесяцаСлед Цикл
            
            ОблДень.Параметры.День = День(День);
            
            Для Каждого Стр из Ссылка.ДанныеМесяца цикл
                Если Стр.День = День тогда
                    ОблДень.Параметры.Вид = Стр.ВидЗаписи;
                КонецЕсли;
            КонецЦикла;    
            
            Если День = НД_ТД Тогда
                мОблДень = ОблДень.Область(1,1, 5,2);
                //мОблДень.ЦветФона = WebЦвета.СветлоКоралловый;
                Строка.Присоединить(ОблДень);
                мОблДень.ЦветФона = Новый Цвет;
            Иначе
                Строка.Присоединить(ОблДень);
            КонецЕсли;
            ДеньНедели = ДеньНедели(День); //// Получаем номер дня недели
            
            Если ДеньНедели = 7 Тогда
                ТабДок.Вывести(Строка);
                Строка = Новый ТабличныйДокумент;
            КонецЕсли;
            День = День + 24*60*60;
            
        КонецЦикла;
        
        
        Если ДеньНедели <> 7 Тогда
            Для Ном = ДеньНедели+1 по 7 Цикл
                ОблДень1.Параметры.День = День(День);
                Строка.Присоединить(ОблДень1);
                День = День + 24*60*60;
            КонецЦикла;
            ТабДок.Вывести(Строка);
        КонецЕсли;
        
        
        ВставлятьРазделительСтраниц = Истина;
burza
burza @ Сегодня, 12:46 необходимо зарегистрироваться для просмотра ссылки ,
необходимо зарегистрироваться для просмотра ссылки вот это было бы идеально)

как такое к моему макету прикрутить) ото у меня фигня получаеться
andytg
burza @ Сегодня, 13:59 необходимо зарегистрироваться для просмотра ссылки ,

такое -- это в смысле, свои заметки в календарь?
можно попробовать что-то типа таблицы в режиме ввода данных (как регламентированный отчет) и потом сохранять "заметки" куда-либо, хоть в справочник, хоть в независимый регистр сведений

когда-то давно делал такое на 7.7 -- закупающие захотели некую таблицу (отчет) "как в экселе" (с), чтоб туда выводились строки вспомогательных документов (внутренних заявок на закупку), они там в этой простыне что-то редактировали (типа, запрос продающего менеджера -- ответ закупающего), а потом при закрытии таблицы отчета всё из ячеек разносилось обратно в строки документов, типа им так нагляднее и удобнее smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.