1
0
mirror of https://github.com/Stepa86/1C-activity.git synced 2024-11-13 16:20:28 +02:00

Инициализация

This commit is contained in:
Stepa86 2017-03-07 12:48:53 +03:00
parent c591203a87
commit 9cfc680fbb
5 changed files with 717 additions and 0 deletions

Binary file not shown.

View File

@ -0,0 +1,201 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4">
<ExternalDataProcessor uuid="bd26546b-ba96-4c1a-88f3-da13730dfc63">
<InternalInfo>
<xr:ContainedObject>
<xr:ClassId>c3831ec8-d8d5-4f93-8a22-f9bfae07327f</xr:ClassId>
<xr:ObjectId>377453cb-be51-4c40-9a40-64a27a987c8d</xr:ObjectId>
</xr:ContainedObject>
<xr:GeneratedType name="ExternalDataProcessorObject.Активности" category="Object">
<xr:TypeId>5b654550-a710-4a00-bfe9-070787297bcc</xr:TypeId>
<xr:ValueId>7c3a7ff6-f3c8-42f5-8912-dd84a2910a4e</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>Активности</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Активности</v8:content>
</v8:item>
</Synonym>
<Comment/>
<DefaultForm>ExternalDataProcessor.Активности.Form.Форма</DefaultForm>
<AuxiliaryForm/>
</Properties>
<ChildObjects>
<TabularSection uuid="fdda952e-e6ef-4adc-838f-08c30b8ae483">
<InternalInfo>
<xr:GeneratedType name="DataProcessorTabularSection.Активности.ТаблицаАктивностей" category="TabularSection">
<xr:TypeId>18c3928e-8813-44d2-99c5-64f413dd0068</xr:TypeId>
<xr:ValueId>50045f3d-efac-4f45-a8f2-3d7377b6f3dd</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="DataProcessorTabularSectionRow.Активности.ТаблицаАктивностей" category="TabularSectionRow">
<xr:TypeId>f1fa76a8-a18d-4875-ac88-032a59c8e222</xr:TypeId>
<xr:ValueId>e53689b2-3939-4719-a53e-c11f579f3752</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>ТаблицаАктивностей</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Таблица активностей</v8:content>
</v8:item>
</Synonym>
<Comment/>
<ToolTip/>
<FillChecking>DontCheck</FillChecking>
<StandardAttributes>
<xr:StandardAttribute name="LineNumber">
<xr:LinkByType/>
<xr:FillChecking>DontCheck</xr:FillChecking>
<xr:MultiLine>false</xr:MultiLine>
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
<xr:CreateOnInput>Auto</xr:CreateOnInput>
<xr:MaxValue xsi:nil="true"/>
<xr:ToolTip/>
<xr:ExtendedEdit>false</xr:ExtendedEdit>
<xr:Format/>
<xr:ChoiceForm/>
<xr:QuickChoice>Auto</xr:QuickChoice>
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
<xr:EditFormat/>
<xr:PasswordMode>false</xr:PasswordMode>
<xr:MarkNegatives>false</xr:MarkNegatives>
<xr:MinValue xsi:nil="true"/>
<xr:Synonym/>
<xr:Comment/>
<xr:FullTextSearch>Use</xr:FullTextSearch>
<xr:ChoiceParameterLinks/>
<xr:FillValue xsi:nil="true"/>
<xr:Mask/>
<xr:ChoiceParameters/>
</xr:StandardAttribute>
</StandardAttributes>
</Properties>
<ChildObjects>
<Attribute uuid="a7350dcf-3ded-442a-9dd7-394cdf707f24">
<Properties>
<Name>Период</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Период</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:dateTime</v8:Type>
<v8:DateQualifiers>
<v8:DateFractions>DateTime</v8:DateFractions>
</v8:DateQualifiers>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
<Attribute uuid="f047fde8-b0c4-4ac4-9dec-4f545f846030">
<Properties>
<Name>Описание</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Описание</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:type="xs:string"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
<Attribute uuid="13fb7ec7-71ca-4cfc-a6bd-70e8c529af9c">
<Properties>
<Name>День</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>День</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:dateTime</v8:Type>
<v8:DateQualifiers>
<v8:DateFractions>Date</v8:DateFractions>
</v8:DateQualifiers>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
</ChildObjects>
</TabularSection>
<Form>Форма</Form>
</ChildObjects>
</ExternalDataProcessor>
</MetaDataObject>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4">
<Form uuid="093ce5dd-a4fa-47f9-8a50-566ddb2a9959">
<Properties>
<Name>Форма</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Форма</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Managed</FormType>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PersonalComputer</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobileDevice</v8:Value>
</UsePurposes>
<ExtendedPresentation/>
</Properties>
</Form>
</MetaDataObject>

View File

@ -0,0 +1,140 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4">
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1">
<ChildItems>
<Button name="Заполнить" id="1">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.Заполнить</CommandName>
<ExtendedTooltip name="ЗаполнитьРасширеннаяПодсказка" id="2"/>
</Button>
<Button name="ФормаЗаполнитьТестовымиДанными" id="34">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.ЗаполнитьТестовымиДанными</CommandName>
<ExtendedTooltip name="ФормаЗаполнитьТестовымиДаннымиРасширеннаяПодсказка" id="35"/>
</Button>
</ChildItems>
</AutoCommandBar>
<ChildItems>
<SpreadSheetDocumentField name="ТабличныйДокумент_Активности" id="3">
<DataPath>ТабличныйДокумент_Активности</DataPath>
<TitleLocation>None</TitleLocation>
<Height>9</Height>
<VerticalStretch>false</VerticalStretch>
<VerticalScrollBar>false</VerticalScrollBar>
<HorizontalScrollBar>false</HorizontalScrollBar>
<EnableStartDrag>false</EnableStartDrag>
<EnableDrag>false</EnableDrag>
<BorderColor>style:FormBackColor</BorderColor>
<ContextMenu name="ТабличныйДокумент_АктивностиКонтекстноеМеню" id="4"/>
<ExtendedTooltip name="ТабличныйДокумент_АктивностиРасширеннаяПодсказка" id="5"/>
<Events>
<Event name="DetailProcessing">ТабличныйДокумент_АктивностиОбработкаРасшифровки</Event>
</Events>
</SpreadSheetDocumentField>
<Table name="ТаблицаАктивностей" id="12">
<AutoInsertNewRow>true</AutoInsertNewRow>
<EnableStartDrag>true</EnableStartDrag>
<EnableDrag>true</EnableDrag>
<DataPath>Объект.ТаблицаАктивностей</DataPath>
<RowFilter xsi:nil="true"/>
<ContextMenu name="ТаблицаАктивностейКонтекстноеМеню" id="13"/>
<AutoCommandBar name="ТаблицаАктивностейКоманднаяПанель" id="14"/>
<ExtendedTooltip name="ТаблицаАктивностейРасширеннаяПодсказка" id="15"/>
<SearchStringAddition name="ТаблицаАктивностейСтрокаПоиска" id="16">
<AdditionSource>
<Item>ТаблицаАктивностей</Item>
<Type>SearchStringRepresentation</Type>
</AdditionSource>
<ContextMenu name="ТаблицаАктивностейСтрокаПоискаКонтекстноеМеню" id="17"/>
<ExtendedTooltip name="ТаблицаАктивностейСтрокаПоискаРасширеннаяПодсказка" id="18"/>
</SearchStringAddition>
<ViewStatusAddition name="ТаблицаАктивностейСостояниеПросмотра" id="19">
<AdditionSource>
<Item>ТаблицаАктивностей</Item>
<Type>ViewStatusRepresentation</Type>
</AdditionSource>
<ContextMenu name="ТаблицаАктивностейСостояниеПросмотраКонтекстноеМеню" id="20"/>
<ExtendedTooltip name="ТаблицаАктивностейСостояниеПросмотраРасширеннаяПодсказка" id="21"/>
</ViewStatusAddition>
<SearchControlAddition name="ТаблицаАктивностейУправлениеПоиском" id="22">
<AdditionSource>
<Item>ТаблицаАктивностей</Item>
<Type>SearchControl</Type>
</AdditionSource>
<ContextMenu name="ТаблицаАктивностейУправлениеПоискомКонтекстноеМеню" id="23"/>
<ExtendedTooltip name="ТаблицаАктивностейУправлениеПоискомРасширеннаяПодсказка" id="24"/>
</SearchControlAddition>
<ChildItems>
<LabelField name="ТаблицаАктивностейНомерСтроки" id="25">
<DataPath>Объект.ТаблицаАктивностей.LineNumber</DataPath>
<EditMode>EnterOnInput</EditMode>
<ContextMenu name="ТаблицаАктивностейНомерСтрокиКонтекстноеМеню" id="26"/>
<ExtendedTooltip name="ТаблицаАктивностейНомерСтрокиРасширеннаяПодсказка" id="27"/>
</LabelField>
<InputField name="ТаблицаАктивностейПериод" id="28">
<DataPath>Объект.ТаблицаАктивностей.Период</DataPath>
<EditMode>EnterOnInput</EditMode>
<ContextMenu name="ТаблицаАктивностейПериодКонтекстноеМеню" id="29"/>
<ExtendedTooltip name="ТаблицаАктивностейПериодРасширеннаяПодсказка" id="30"/>
</InputField>
<InputField name="ТаблицаАктивностейОписание" id="31">
<DataPath>Объект.ТаблицаАктивностей.Описание</DataPath>
<EditMode>EnterOnInput</EditMode>
<ContextMenu name="ТаблицаАктивностейОписаниеКонтекстноеМеню" id="32"/>
<ExtendedTooltip name="ТаблицаАктивностейОписаниеРасширеннаяПодсказка" id="33"/>
</InputField>
</ChildItems>
</Table>
</ChildItems>
<Attributes>
<Attribute name="Объект" id="1">
<Type>
<v8:Type>cfg:ExternalDataProcessorObject.Активности</v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
</Attribute>
<Attribute name="ТабличныйДокумент_Активности" id="2">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Табличный документ активности</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type xmlns:mxl="http://v8.1c.ru/8.2/data/spreadsheet">mxl:SpreadsheetDocument</v8:Type>
</Type>
</Attribute>
</Attributes>
<Commands>
<Command name="Заполнить" id="1">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Заполнить</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Заполнить</v8:content>
</v8:item>
</ToolTip>
<Action>Заполнить</Action>
</Command>
<Command name="ЗаполнитьТестовымиДанными" id="2">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Заполнить тестовыми данными</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Заполнить тестовыми данными</v8:content>
</v8:item>
</ToolTip>
<Action>ЗаполнитьТестовымиДанными</Action>
</Command>
</Commands>
</Form>

View File

@ -0,0 +1,354 @@

&НаКлиенте
Процедура ТабличныйДокумент_АктивностиОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
Если СтрНачинаетсяС( Расшифровка, "ДеньАктивности" ) Тогда
СтандартнаяОбработка = Ложь;
структОтбор = Новый Структура( "День", Дата( СтрЗаменить( Расшифровка, "ДеньАктивности", "") ));
Элементы.ТаблицаАктивностей.ОтборСтрок = Новый ФиксированнаяСтруктура( структОтбор );
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьТестовымиДанными(Команда)
ЗаполнитьТестовымиДаннымиСервер();
КонецПроцедуры
Процедура ЗаполнитьТестовымиДаннымиСервер()
Объект.ТаблицаАктивностей.Очистить();
ГСЧ = Новый ГенераторСлучайныхЧисел();
структНастройки = ПолучитьНастройки( 100 );
текДень = структНастройки.ПервыйДень;
Пока текДень <= структНастройки.ПоследнийДень Цикл
Если ДеньНедели( текДень ) = 6
ИЛИ ДеньНедели( текДень ) = 7 Тогда
максАктивностей = 20;
Иначе
максАктивностей = 100;
КонецЕсли;
Для ц = 0 По ГСЧ.СлучайноеЧисло( 0, максАктивностей ) Цикл
новСтрока = Объект.ТаблицаАктивностей.Добавить();
новСтрока.Период = текДень;
новСтрока.Описание = ц;
КонецЦикла;
текДень = текДень + Сутки();
КонецЦикла;
ЗаполнитьНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура Заполнить(Команда)
ЗаполнитьНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНаСервере()
Для каждого цСтрока Из Объект.ТаблицаАктивностей Цикл
цСтрока.День = НачалоДня( цСтрока.Период );
КонецЦикла;
тзАктивности = Объект.ТаблицаАктивностей.Выгрузить(, "День");
тзАктивности.Колонки.Добавить( "Количество" );
тзАктивности.ЗаполнитьЗначения( 1, "Количество" );
тзАктивности.Свернуть( "День", "Количество" );
максКоличество = 0;
Для каждого цСтрока Из тзАктивности Цикл
максКоличество = Макс( максКоличество, цСтрока.Количество );
КонецЦикла;
структНастройки = ПолучитьНастройки(максКоличество);
ТабличныйДокумент_Активности = СоздатьТабличныйДокументАктивности( тзАктивности, структНастройки );
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьНастройки(Знач максКоличество)
структНастройки = Новый Структура();
структНастройки.Вставить( "ПервыйДень", НачалоДня( ДобавитьМесяц( ТекущаяДатаСеанса(), -12) + Сутки()));
структНастройки.Вставить( "ПоследнийДень", НачалоДня( ТекущаяДатаСеанса() ));
массивПалитра = Новый Массив;
массивПалитра.Добавить( Новый Цвет(225,225,225) );
массивПалитра.Добавить( Новый Цвет(173,213,247) );
массивПалитра.Добавить( Новый Цвет(127,178,240) );
массивПалитра.Добавить( Новый Цвет(78,122,199) );
массивПалитра.Добавить( Новый Цвет(53,71,140) );
массивПалитра.Добавить( Новый Цвет(22,25,59) );
структНастройки.Вставить( "Палитра", массивПалитра );
массивГраницы = Новый Массив;
массивГраницы.Добавить(0);
массивГраницы.Добавить(1);
массивГраницы.Добавить(Макс( 1, максКоличество * 0.2));
массивГраницы.Добавить(Макс( 1, максКоличество * 0.4));
массивГраницы.Добавить(Макс( 1, максКоличество * 0.6));
массивГраницы.Добавить(Макс( 1, максКоличество * 0.8));
структНастройки.Вставить( "Границы", массивГраницы );
Возврат структНастройки;
КонецФункции
&НаСервереБезКонтекста
Функция СоздатьТабличныйДокументАктивности( Знач пТаблицаАктивностей, Знач пНастройки )
таблДок = Новый ТабличныйДокумент;
ПрисоединитьКолонкуДней(таблДок);
облКвадратик = таблДок.ПолучитьОбласть("R1C1");
облЯчеекКвадратика = НастроитьОбластьЯчеекКвадратика(облКвадратик);
текНеделя = НачалоНедели( пНастройки.ПервыйДень );
Пока текНеделя <= пНастройки.ПоследнийДень Цикл
облМесяц = ПолучитьОбластьМесяца(таблДок);
колонкаНеделя = Новый ТабличныйДокумент;
месяцНачалаНедели = НачалоМесяца( текНеделя );
месяцКонцаНедели = НачалоМесяца( КонецНедели( текНеделя ) );
естьСменаМесяца = Не месяцНачалаНедели = месяцКонцаНедели ИЛИ текНеделя = месяцНачалаНедели;
Если естьСменаМесяца
ИЛИ текНеделя <= пНастройки.ПервыйДень Тогда
облМесяц.Область("R1C1").Текст = Формат( месяцКонцаНедели, "ДФ=MMMM" );
КонецЕсли;
колонкаНеделя.Вывести( облМесяц );
Для ц = 0 По 6 Цикл
текДень = НачалоДня( текНеделя + ц*Сутки() );
Если текДень < пНастройки.ПервыйДень
ИЛИ текДень > пНастройки.ПоследнийДень Тогда
облЯчеекКвадратика.Текст = "";
облЯчеекКвадратика.ЦветФона = Новый Цвет(255,255,255);
Иначе
облЯчеекКвадратика.Гиперссылка = Истина;
облЯчеекКвадратика.ПараметрРасшифровки = "ДеньАктивности";
облКвадратик.Параметры.ДеньАктивности = "ДеньАктивности" + Формат( текДень, "ДФ=yyyyMMddhhmmss" );
текСтрока = пТаблицаАктивностей.Найти( текДень, "День" );
облЯчеекКвадратика.Текст = ТекстКвадратика(текДень, текСтрока);
облЯчеекКвадратика.ЦветФона = ЦветФонаКвадратика(текСтрока, пНастройки);
КонецЕсли;
Если естьСменаМесяца Тогда
Если текДень = месяцНачалаНедели Тогда
облЯчеекКвадратика.ГраницаСверху = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 2);
Иначе
облЯчеекКвадратика.ГраницаСверху = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
КонецЕсли;
Если текДень = НачалоДня( КонецМесяца( месяцНачалаНедели ) ) Тогда
облЯчеекКвадратика.ГраницаСнизу = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 2);
Иначе
облЯчеекКвадратика.ГраницаСнизу = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
КонецЕсли;
Если текДень >= месяцКонцаНедели Тогда
облЯчеекКвадратика.ГраницаСлева = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 2);
Иначе
облЯчеекКвадратика.ГраницаСлева = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
КонецЕсли;
Если текДень < месяцКонцаНедели Тогда
облЯчеекКвадратика.ГраницаСправа = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 2);
Иначе
облЯчеекКвадратика.ГраницаСправа = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
КонецЕсли;
Иначе
облЯчеекКвадратика.ГраницаСверху = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
облЯчеекКвадратика.ГраницаСнизу = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
облЯчеекКвадратика.ГраницаСлева = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
облЯчеекКвадратика.ГраницаСправа = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
КонецЕсли;
колонкаНеделя.Вывести( облКвадратик );
КонецЦикла;
текНеделя = НачалоНедели( текНеделя + 7*Сутки() );
таблДок.Присоединить( колонкаНеделя );
КонецЦикла;
таблДок.Вывести( таблДок.ПолучитьОбласть("R1C1") );
строкаРасшифровки = Новый ТабличныйДокумент;
строкаРасшифровки.Присоединить( таблДок.ПолучитьОбласть("R1C1") );
облКвадратикРасшифровки = таблДок.ПолучитьОбласть("R1C1");
облЯчеекКвадратикаРасшифровки = НастроитьОбластьЯчеекКвадратика(облКвадратикРасшифровки);
Для каждого цЦвет Из пНастройки.Палитра Цикл
облЯчеекКвадратикаРасшифровки.ЦветФона = цЦвет;
строкаРасшифровки.Присоединить( облКвадратикРасшифровки );
КонецЦикла;
таблДок.Вывести( строкаРасшифровки );
Возврат таблДок;
КонецФункции
&НаСервереБезКонтекста
Функция НастроитьОбластьЯчеекКвадратика(Знач облКвадратик)
облЯчеекКвадратика = облКвадратик.Область("R1C1");
облЯчеекКвадратика.ВысотаСтроки = 12;
облЯчеекКвадратика.ШиринаКолонки = 2.5;
облЯчеекКвадратика.Отступ = 4;
облЯчеекКвадратика.ЦветРамки = Новый Цвет(255,255,255);
облЯчеекКвадратика.ГраницаСверху = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
облЯчеекКвадратика.ГраницаСнизу = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
облЯчеекКвадратика.ГраницаСлева = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
облЯчеекКвадратика.ГраницаСправа = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
Возврат облЯчеекКвадратика;
КонецФункции
&НаСервереБезКонтекста
Функция ПолучитьОбластьМесяца(Знач таблДок)
облМесяц = таблДок.ПолучитьОбласть("R1C1");
облМесяц.Область("R1C1").ВысотаСтроки = 12;
облМесяц.Область("R1C1").ШиринаКолонки = 2.5;
облМесяц.Область("R1C1").ГоризонтальноеПоложение = ГоризонтальноеПоложение.Лево;
облМесяц.Область("R1C1").РазмещениеТекста = ТипРазмещенияТекстаТабличногоДокумента.Авто;
Возврат облМесяц;
КонецФункции
&НаСервереБезКонтекста
Функция ТекстКвадратика( Знач пТекДата, Знач пТекСтрокаАктивности = Неопределено)
шаблон = "%1
|%2";
количествоАктивностей = 0;
Если Не пТекСтрокаАктивности = Неопределено Тогда
количествоАктивностей = пТекСтрокаАктивности.Количество;
КонецЕсли;
комментарий = СтрокаСЧислом( НСтр( "ru='Нет активностей;%1 активность;;%1 активности;%1 активностей;%1 активности'" ), количествоАктивностей, ВидЧисловогоЗначения.Количественное, "L=ru");
Возврат СтрШаблон( шаблон, комментарий, Формат( пТекДата, "ДЛФ=DD" ));
КонецФункции
&НаСервереБезКонтекста
Функция ЦветФонаКвадратика( Знач пТекСтрокаАктивности = Неопределено, пНастройки )
количествоАктивностей = 0;
Если Не пТекСтрокаАктивности = Неопределено Тогда
количествоАктивностей = пТекСтрокаАктивности.Количество;
КонецЕсли;
текИндексЦвета = 0;
Для ц = 0 По пНастройки.Границы.ВГраница() Цикл
Если пНастройки.Границы[ц] <= количествоАктивностей Тогда
текИндексЦвета = ц;
КонецЕсли;
КонецЦикла;
Возврат пНастройки.Палитра[текИндексЦвета];
КонецФункции
&НаСервереБезКонтекста
Процедура ПрисоединитьКолонкуДней(Знач таблДок)
Секция = таблДок.ПолучитьОбласть("R1C1");
Секция.Область("R1C1").ВысотаСтроки = 12;
Секция.Область("R1C1").ШиринаКолонки = 5;
Секция.Область("R1C1").ГоризонтальноеПоложение = ГоризонтальноеПоложение.Право;
колонкаДни = Новый ТабличныйДокумент;
колонкаДни.Вывести( Секция );
Для ц = 0 По 6 Цикл
Секция.Область("R1C1").Текст = Формат( НачалоНедели( ТекущаяДатаСеанса() ) + ц*Сутки(), "ДФ=ddd" );
колонкаДни.Вывести( Секция );
КонецЦикла;
таблДок.Присоединить( колонкаДни );
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция Сутки()
Возврат 24*60*60;
КонецФункции // Сутки()