• Есть ли какие-нибудь курсы по написанию технических заданий?

    Да есть, я сейчас. Прохожу. курс практичный, онлайн.
    Школа системного анализа. Рекомендую, сам там обучаюсь.) Практические задания, обсуждения, вопросы, домашка, консультации. Все это там
    school.system-analysis.ru/
    Ответ написан
    Комментировать
  • Бизнес-аналитики, куда пойти на курсы переподготовки или учиться?

    Добрый день.
    Проблема аналогичная. как я вижу, на данном ресурсе очень мало бизнес-аналитиков. либо не правильно ищу.

    вы какие курсы имеете ввиду?
    1.Business Intelligence?
    2. Или профессию бизнес-аналитика - т.е. человека, который собирает данные у клиентов, анализирует бизнес-процессы, рисует диаграммы, пишет ТЗ и т.д.
    Если 2. То
    iiba.ru
    school.system-analysis.ru/ - рекомендую, сейчас там учусь, очень хорошие тренинги
    itmine.by
    Ответ написан
    Комментировать
  • Как в Excel изменить значение столбца "Телефон" с "244-44-44 это номер Кати" на "244-44-44"?

    @tlatypov Автор вопроса
    Замена

    "Старый, но не устаревший" трюк. Выделяем зачищаемый диапазон ячеек и используем инструмент Заменить с вкладки Главная – Найти и выделить (Home – Find & Select – Replace) или жмем сочетание клавиш Ctrl+H.

    Изначально это окно было задумано для оптовой замены одного текста на другой по принципу "найди Маша – замени на Петя", но мы его, в данном случае, можем использовать его и для удаления лишнего текста. Например, в первую строку вводим "г." (без кавычек!), а во вторую не вводим ничего и жмем кнопку Заменить все (Replace All). Excel удалит все символы "г." перед названиями городов:

    clean-text1.png

    Только не забудьте предварительно выделить нужный диапазон ячеек, иначе замена произойдет на всем листе!
    Удаление пробелов

    Если из текста нужно удалить вообще все пробелы (например они стоят как тысячные разделители внутри больших чисел), то можно использовать ту же замену: нажать Ctrl+H, в первую строку ввести пробел, во вторую ничего не вводить и нажать кнопку Заменить все (Replace All).

    Однако, часто возникает ситуация, когда удалить надо не все подряд пробелы, а только лишние – иначе все слова слипнутся друг с другом. В арсенале Excel есть специальная функция для этого – СЖПРОБЕЛЫ (TRIM) из категории Текстовые. Она удаляет из текста все пробелы, кроме одиночных пробелов между словами, т.е. мы получим на выходе как раз то, что нужно:

    clean-text2.png

    Удаление непечатаемых символов

    В некоторых случаях, однако, функция СЖПРОБЕЛЫ (TRIM) может не помочь. Иногда то, что выглядит как пробел – на самом деле пробелом не является, а представляет собой невидимый спецсимвол (неразрывный пробел, перенос строки, табуляцию и т.д.). У таких символов внутренний символьный код отличается от кода пробела (32), поэтому функция СЖПРОБЕЛЫ не может их "зачистить".

    Вариантов решения два:

    Аккуратно выделить мышью эти спецсимволы в тексте, скопировать их (Ctrl+C) и вставить (Ctrl+V) в первую строку в окне замены (Ctrl+H). Затем нажать кнопку Заменить все (Replace All) для удаления.
    Использовать функцию ПЕЧСИМВ (CLEAN). Эта функция работает аналогично функции СЖПРОБЕЛЫ, но удаляет из текста не пробелы, а непечатаемые знаки. К сожалению, она тоже способна справится не со всеми спецсимволами, но большинство из них с ее помощью можно убрать.

    Функция ПОДСТАВИТЬ

    Замену одних символов на другие можно реализовать и с помощью формул. Для этого в категории Текстовые в Excel есть функция ПОДСТАВИТЬ (SUBSTITUTE). У нее три обязательных аргумента:

    Текст в котором производим замену
    Старый текст – тот, который заменяем
    Новый текст – тот, на который заменяем

    С ее помощью можно легко избавиться от ошибок (замена "а" на "о"), лишних пробелов (замена их на пустую строку ""), убрать из чисел лишние разделители (не забудьте умножить потом результат на 1, чтобы текст стал числом):

    clean-text3.png

    Удаление апострофов в начале ячеек

    Апостроф (') в начале ячейки на листе Microsoft Excel – это специальный символ, официально называемый текстовым префиксом. Он нужен для того, чтобы дать понять Excel, что все последующее содержимое ячейки нужно воспринимать как текст, а не как число. По сути, он служит удобной альтернативой предварительной установке текстового формата для ячейки (Главная – Число – Текстовый) и для ввода длинных последовательностей цифр (номеров банковских счетов, кредитных карт, инвентарных номеров и т.д.) он просто незаменим. Но иногда он оказывается в ячейках против нашей воли (после выгрузок из корпоративных баз данных, например) и начинает мешать расчетам. Чтобы его удалить, придется использовать небольшой макрос. Откройте редактор Visual Basic сочетанием клавиш Alt+F11, вставьте новый модуль (меню Insert - Module) и введите туда его текст:
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9

    Sub Apostrophe_Remove()
    For Each cell In Selection
    If Not cell.HasFormula Then
    v = cell.Value
    cell.Clear
    cell.Formula = v
    End If
    Next
    End Sub

    Теперь, если выделить на листе диапазон и запустить наш макрос (Alt+F8 или вкладка Разработчик – кнопка Макросы), то апострофы перед содержимым выделенных ячеек исчезнут.
    Английские буквы вместо русских

    Это уже, как правило, чисто человеческий фактор. При вводе текстовых данных в ячейку вместо русских букв случайно вводятся похожие английские ("це" вместо русской "эс", "игрек" вместо русской "у" и т.д.) Причем снаружи все прилично, ибо начертание у этих символов иногда абсолютно одинаковое, но Excel воспринимает их, конечно же, как разные значения и выдает ошибки в формулах, дубликаты в фильтрах и т.д.

    Можно, конечно, вручную заменять символы латинцы на соответствующую им кириллицу, но гораздо быстрее будет сделать это с помощью макроса. Откройте редактор Visual Basic сочетанием клавиш Alt+F11, вставьте новый модуль (меню Insert - Module) и введите туда его текст:
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15

    Sub Replace_Latin_to_Russian()

    Rus = "асекорхуАСЕНКМОРТХ"
    Eng = "acekopxyACEHKMOPTX"

    For Each cell In Selection
    For i = 1 To Len(cell)
    c1 = Mid(cell, i, 1)
    If c1 Like "[" & Eng & "]" Then
    c2 = Mid(Rus, InStr(1, Eng, c1), 1)
    cell.Value = Replace(cell, c1, c2)
    End If
    Next i
    Next cell
    End Sub

    Теперь, если выделить на листе диапазон и запустить наш макрос (Alt+F8 или вкладка Разработчик – кнопка Макросы), то все английские буквы, найденные в выделенных ячейках, будут заменены на равноценные им русские. Только будьте осторожны, чтобы не заменить случайно нужную вам латиницу :)

    www.planetaexcel.ru/techniques/7/191
    Ответ написан
    Комментировать
  • Как сделать так чтобы отображалась почтовое окно на портале Битрикс?

    @tlatypov Автор вопроса
    Это можно сделать используя iframe
    Т.к. портал работает через https то и почту надо предварительно сделать https
    Ответ написан
    Комментировать
  • Как сделать так чтобы в одном файле Excel отображались данные из другого файла Excel?

    @tlatypov Автор вопроса
    Мы сделали с помощью Excel на обменнике. Воспользовались функционалом Excel^
    Копируем необходимые значения из одной страницы.
    Открываем другой excel файл, нажимаю правой кнопкой - меню- выбираю "Специальная вставка" - нажимаю на "Вставить связь".
    Использовал office 2007. Может в 2013 офисе есть более продвинутые возможности, незнаю.
    Ответ написан
    Комментировать
  • Что посоветуете изучить для лучшего стиля письменного изложения?

    Читать больше книг. А также книги по риторике. Вот краткое мое изложение одной из таких книг, без воды:

    Риторика
    1. Читать вслух короткие газет¬ные статьи и сразу же пересказать их содержание собственными словами.
    2. Выговаривать медленно каждое слово (вдох ч/з нос), читать больше слов на 1 дыхании.
    2.1. Гимнастика — произносите зву¬косочетания «лалелилолу», «татетитоту. Читать в словах буквы о и а и т.д. (без тверд.)
    3. Разрабатывать разъяснения какого-нибудь предмета, слова определения. Например: Глобус - это вращающий- полый шар, раскрашенный в разные цвета; с помощью градусов широты дает представление о земной поверхности.
    4.Пересказывать рассказы. 5. Конспект статей (ключевые слова), воспроизведение его собственными словами (перефразируя). • Сокращаем статью (сжато вплоть до 1 пред¬ложения!).•Расширяем статью, добавляя собственное мнение.
    6 Доклад. В качестве упражнения для деловых сообщений выбра¬на тема, для которой основным материалом служат ста-тистические данные. Мы заимствовали эти сведения из ежегодника ООН, по данным которого годовой прирост населения в период 1958—1963 гг. в различных регионах мира составлял:
    Центральная Америка 2, 9% Южная Америка 2, 8% Европа 0,9%
    ФРГ 1,3%
    Азия 2, 3% Океания 2,2% США 1,7%
    Африка 2,0% СССР 1,7%
    Задание. Подготовьте на основе данных доклад: «Мировой демографический взрыв в 60-е годы.»1. Сначала выполнить см. доклад. 2. Разработать конспект ключевых слов и изложить сообщение. 3. После этого прочтите, пожалуйста, последу-ющие строки и проверьте, есть ли в них рекомендации, способные привести к улучшению сообщения. Надо убе¬дительно показать слушателям значение и различные ас¬пекты увеличения народонаселения. Некоторые выводы из приведенных цифровых данных:• Маленькое открытие: наибольший процент приро¬ста населения не в Азии и Африке, а в Централь¬ной и Южной Америке. • Правда, последствия прироста наиболее сказыва¬ются в многонаселенной Азии.• Латинская Америка, Азия, Африка далеко оторва¬лись от Европы, там приросте 3 раза больше.• Сверхдержавы США и СССР находятся на одном уровне.• В настоящее время прирост в Европе, в ФРГ превышает средний уровень.Общий вывод: преобладающий рост цветного населе¬ния.
    Европа вскоре окажется «на грани». Проблемы: регу¬лирование рождаемости, дефицит продуктов питания,индустриализация, новые могущественные факторы вли¬яния на прирост населения. (Здесь я показал лишь неко-торые. Теперь попытаемся извлечь информацию, проана¬лизировав структуру населения, причины различного прироста и т. д., чтобы основательнее развить комплекс проблем темы «Прирост населения». Но удовлетворимся представленным материалом, ведь мы ни в коей мере не стремимся отразить сегодняшнюю ситуацию, наша за¬дача — дать полезный материал для упражнений.).
    7. Эффективнее заучивать в течение 2 дней по часу в день, чем в тече¬ние 2 часов в один день, потому что во время пе-рерыва между занятиями подсознание продолжает закрепление материала в памяти.
    8. Юмор и шутки особенно необходимы, когда трудные места речи уже позади.
    9. Введение и главная часть доклада должны дать ответ на сле¬дующие четыре вопроса: Введение: 1. Почему я говорю?
    Главная часть: 1. Каково существующее положение («Что было, что есть?») 2. Что должно быть вместо этого? 3. Как можно изменить существующее положение? Заключение: содержит побуждение к действию: идти путем, о котором узнал оратор, и таким об¬разом изменить существующее поло¬жение.Заключение содержит обзор, кульминацию, окончание.

    Риторическое средство Воздействие Пример
    1. Пример, подробность, сравнение Все абстрактное представлять наглядно с помощью метких сравнений и примеров, а также образов и включаемых в речь коротких рассказов. Сообщение о том, что огромная Южная Африка Конго
    имеет всего 1,1 млн. жителей, наглядно с помощью
    сравнения: «Конго в десяток раз больше Западной Герма¬нии, и число жителей составляет всего 1/4 запад¬ногерманского населения»
    Английский политик Эттли срав¬нил выборы на Востоке со «скачками, в которых участвует только одна лошадь. Победитель установлен заранее».
    3. Образ (метафора), образный ряд Образность министр забил в свои ворота, Закон об обеспечении государственного бюджета был костылем, который помог преодолеть трудности только одного года
    4. Рассказ (narratio)
    5. Повтор
    Повторение - способ убеждения, с ярко выраженной эмоцией. если мы не победим, победить мы должны, мы победим непременно! «я бросил упрек оппоненту один раз, я уп¬рекнул его во второй раз. «Суть госу-дарства не в правительстве, суть государства и не в оп¬позиции. Сутью государства являются правительство и оппозиция».
    6. Разъяснение Я попросил господина Мейера поискать деловые бумаги; нет, я его не только попросил: я ему настоятельно рекомендовал, я от него потребовал принести наконец деловые бумаги
    Ответ написан
    5 комментариев
  • Вопрос(опрос) такой общий, сколько программист должен заниматься версткой?

    "И как определить по вакансии, что берут именно программиста?"
    1. читать должностную инструкцию (если она есть). Если ее нет в компании, а вы официально устраиваетесь, то самому сделать и дать подписать ее.

    1.2. Если вы сейчас работаете официально и у вас есть должностная инструкция, то перечитайте свою должностную инструкцию. Есть ли пункты касающиеся работы типа "верстка"? если есть и вы подписали договор, то дальше работать.
    Если данного пункта нет в вашей должностной инструкции, то поднимите вопрос о необходимости:
    а) оплаты за дополнительно проделанную работу и доплаты за дополнительную работу.
    или
    б) пусть ищут верстальщика.
    Ответ написан
    Комментировать
  • 1c битрикс. Как найти/узнать строку кода уведомления?

    @tlatypov Автор вопроса
    Настройки здесь в 1с битрикс (портал): Администрирование - Рабочий стол - Настройки - Настройки продукта - Настройки модулей - Задачи

    Шаблон ссылки на список задач пользователя:
    Шаблон ссылки на просмотр задачи пользователя:
    Шаблон ссылки на редактирование задачи пользователя:
    Шаблон ссылки на задачу пользователя:
    Шаблон ссылки на список задач группы:
    Шаблон ссылки на просмотр задачи группы:
    Шаблон ссылки на редактирование задачи группы:
    Шаблон ссылки на задачу группы:
    Лимит кол-ва файлов в одном комментарии:
    Ответ написан
    Комментировать
  • Выбор business intelligence tools под postgresql?

    www.basegroup.ru deductor
    Рабочее место аналитика (StudioProfessional) – 29 000 руб.
    Рабочее место пользователя (ViewerProfessional) – 8 700 руб.
    Программа обновилась до 5.3. версии, к декабрю выйдет сетевая 6 версия.
    Вроде уже должен работать в Linux. Запросите это у igor.semenyuk@basegroup.ru

    Deductor в среде PCLinux
    Давно уже мечтал попробовать работу Deductor в среде Linux. И это удалось в среде KDE операционной системы PCLinux под эмулятором Windows - Wine. Хотелось бы узнать, был ли у кого уже подобный опыт?
    Ответить Тематика: Предложения и замечания
    Игорь
    26-06-2008
    Как не удивительно, у нас тоже есть подобный опыт. Были эксперименты с работой Deductor в Linux., навшем случае это был Ubuntu 6 и 7, также под Wine, а точнее под его модификацией от Etersoft.
    Обнаруженные неприятности:
    1. необходима установка IE, т.к. он используется в ряде визуализаторов и для печати используется, а мозиловский объект не совсем совпадает по имеющимся методам и свойствам, если этим не пользоваться, то IE можно и не ставить.
    2. для версий Professional и Enterprise необходимо наличие USB ключа, драйверов под Linux пока нет, по этой причине можно использовать только сетевой ключ на другой Windows системе.
    3. для работы с различными СУБД бывает необходимо клиент СУБД, а они не всегда так просто устанавливаются под Wine, успешно работает, если достаточно положить клиентскую dll. Проверена работоспособность получения данных из следующих СУБД : Firebird (уже есть в Deductor), MySQL, Oracle (InstantClient), MS SQL (до 2005, через ntwdblib.dll).
    Ответить
    Ответ написан
    Комментировать
  • Как ($arElem['SECTION'] == 1369) сделать жирным (созданный инфоблок - раздел, сделатьжирным шрифтом название раздела?

    @tlatypov Автор вопроса
    нет не получается. все становиться жирным а нужно только одна строка (элемент)
    из этого <?if($arResult['LAST'][$id] && $arElem['SECTION']==1368 || $arResult['LAST'][$id] && $arElem['SECTION']==1368 || $arResult['LAST'][$id] && $arElem['SECTION']==2610 || $arResult['LAST'][$id] && $arElem['SECTION']==2611){
    $arResult['FACT'][$id]=$arResult['LAST'][$id];

    вот это надо сделать жирным arElem['SECTION']==1368
    Ответ написан
    Комментировать
  • Каким образом созданном инфоблоке сделать жирным название раздела?

    @tlatypov Автор вопроса
    Нет не делает жирным код. Что-то не получается.
    <td class='firstCol'><?if($arElem['SECTION'] == 1369) {?><b><?=$arResult['INDICATOR_NAMES'][$arElem['SECTION']]?></b><?} else {?><?=$arResult['INDICATOR_NAMES'][$arElem['SECTION']]?><?}?></td>


    70da3c4da9a24c09bd4778b9f87a657c.JPG
    <?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();?>
    <div class='kpiIndicator'>
    	<?//pr($arParams);?>
    	<?if($arParams['MAIN_PAGE']!=='Y' && $arParams['EDIT']!=='Y'):?>
    		<div class='departmentFilter'>
    			<form action='<?=$APPLICATION->GetCurPage();?>' method='get' id='departmentFilterForm'>
    				<label>
    					Выбор подразделения для вывода отчетности
    					<?$APPLICATION->IncludeComponent('areal:department.select','links',
    						array(
    							'CACHE_TIME'=>'360000',
    							'EDIT_KPI'=>'Y',
    							'EDIT_EVENTS'=>'N',
    						),
    					false);?>
    				</label>
    			</form>
    		</div>
    	<?endif;?>
    	
    	<h2 class='KPIh2'>Основные показатели деятельности компании<?=($arParams['YEAR'] && $arParams['EDIT']==='Y')?' за '.$arParams['YEAR']:'';?></h2>
    	<?if($arParams['EDIT']!=='Y'):?>
    		<div class='period'>
    			<p>Период 
    				с <input type="text" class="datepicker" id='dpDateFrom' value='<?=date('Y')?>-01'/> 
    				по <input type="text" class="datepicker" id='dpDateTo' value='<?=date('Y')?>-<?=date('m')?>'/>
    			</p>
    		</div>
    	<?else:?>
    		<form action='<?=$APPLICATION->GetCurPage();?>' method='get' id='yearFilterForm'>
    			<label>
    				Выберите год, за который выводить отчет
    				<select name='year' id='yearKpiTable'>
    					<?for($i=2013;$i<=date('Y');$i++):?>
    						<option value='<?=$i?>'<?=($i==$arParams['YEAR'])?' selected':'';?>><?=$i?></option>
    					<?endfor;?>
    				</select>
    			</label>
    			<input type='hidden' value='Y' name='edit'/>
    		</form>
    	<?endif;?>
    	
    	<?if($arParams['EDIT']!=='Y'):?>
    		<table class='kpiIndicatorsTable'>
    			<tr>
    				<th class="first" width='46%'>ПОКАЗАТЕЛЬ</th>
    				<th class="second" width='18%'>ПЛАН (год)</th>
    				<th class="third" width='18%'>ФАКТ</th>
    				<th class="forth" width='18%'>% ВЫПОЛНЕНИЯ</th>
    			</tr>
    			<?foreach($arResult['INDICATORS'] as $id=>$arElem):?>
    				<?if($arResult['LAST'][$id] && $arElem['SECTION']==1368 || $arResult['LAST'][$id] && $arElem['SECTION']==1369 || $arResult['LAST'][$id] && $arElem['SECTION']==1371){
    					$arResult['FACT'][$id]=$arResult['LAST'][$id];
    				}?>
    				<tr>
    					<td class='firstCol'><?=$arResult['INDICATOR_NAMES'][$arElem['SECTION']]?></td>
    					<td class='firstCol'><?if($arElem['SECTION'] == 1369) {?><b><?=$arResult['INDICATOR_NAMES'][$arElem['SECTION']]?></b><?} else {?><?=$arResult['INDICATOR_NAMES'][$arElem['SECTION']]?><?}?></td>
    					<td>
    						<?$plan=(double)$arElem['PLAN'];?>
    						<?=number_format(
    							$plan,
    							($plan-(int)$plan)?2:0,
    							'.',
    							' '
    						)?>
    					</td>
    					<td>
    						<?$fakt=(double)$arResult['FACT'][$id];?>
    						<?=number_format(
    							$fakt,
    							($fakt-(int)$fakt)?2:0,
    							'.',
    							' '
    						)?>
    					</td>
    					<td>
    					<?$res=((double)$arElem['PLAN'])?(double)($arResult['FACT'][$id]/$arElem['PLAN']*100):0?>
    					<?=number_format(
    							$res,
    							($res-(int)$res)?2:0, 
    							'.',
    							' '
    						);?>
    					</td>
    				</tr>
    			<?endforeach;?>
    		</table>
    		<?if($arResult['CAN_EDIT']):?>
    			<input type='hidden' name='year' id='year' value='<?=date('Y')?>' />
    			<input type='hidden' name='link' id='link' value='<?=$APPLICATION->GetCurPageParam('edit=Y',array('edit','save'));?>' />
    			<a href='<?=$APPLICATION->GetCurPageParam('edit=Y',array('edit','save'));?>' class='tableEdit'>Редактировать</a>
    		<?endif;?>
    	<?else:?>
    		<?$APPLICATION->SetTitle('');?>
    		<form action='<?=$APPLICATION->GetCurPage();?>' id='saveKpiInfo' method='post'>
    			<table class='kpiIndicatorsTable edited'>
    				<tr>
    					<th class="first" rowspan='2'>Показатель</th>
    					<th class="second" rowspan='2'>План на год</th>
    					<th class="third" colspan='12'>Факт по месяцам</th>
    					<th class="forth" rowspan='2' >% выполнения</th>
    				</tr>
    				<tr>
    					<?foreach($arResult['MONTHS'] as $m_id=>$month):?>
    						<th class='small'><?=$month?></th>
    					<?endforeach;?>
    				</tr>
    				<?foreach($arResult['INDICATORS'] as $id=>$arElem):?>
    					<?if($arResult['LAST'][$id] && $arElem['SECTION']==1368 || $arResult['LAST'][$id] && $arElem['SECTION']==1369 || $arResult['LAST'][$id] && $arElem['SECTION']==1371){
    						$arResult['FACT'][$id]=$arResult['LAST'][$id];
    					}?>
    					<tr<?=($arElem['SECTION']==1368 || $arElem['SECTION']==1369 || $arElem['SECTION']==1371)?' class="takeLastValue"':'';?>>
    						<td class='firstCol'><?=$arResult['INDICATOR_NAMES'][$arElem['SECTION']]?></td>
    						<td class='plan'>
    							<input type='text' value='<?=(double)$arElem['PLAN']?>' name='INDICATOR[<?=$id?>][PLAN]' class='planInput'/>
    						</td>
    						<?foreach($arResult['MONTHS'] as $m_id=>$month):?>
    							<td class='small'>
    								<input type='text' class='smallInp' value='<?=($arElem['MONTHS'][$m_id+1]['VALUE'])?$arElem['MONTHS'][$m_id+1]['VALUE']:'';?>' name='INDICATOR[<?=$id?>][MONTHS][<?=$m_id+1?>]'/>
    								<?if($arElem['MONTHS'][$m_id+1]['ID']):?>
    									<input type='hidden' value='<?=$arElem['MONTHS'][$m_id+1]['ID']?>' name='MONTHS[<?=$id?>][<?=$m_id+1?>]'/>
    								<?endif;?>
    							</td>
    						<?endforeach;?>
    						<td class='percent'><?=((double)$arElem['PLAN'])?round((double)($arResult['FACT'][$id]/$arElem['PLAN']*100),2):0;?></td>
    					</tr>
    				<?endforeach;?>
    			</table>
    			<?=bitrix_sessid_post()?>
    			<div class='tableEdit'>
    				<input type='submit' name='save' value='Сохранить' />
    				<a class='cancel' href='<?=$APPLICATION->GetCurPageParam('',array('edit','save','year'));?>'>Отменить</a>
    			</div>
    		</form>
    		<?/* <a href='<?=$APPLICATION->GetCurPageParam('save=Y',array('edit','save'));?>'>Сохранить</a> */?>
    	<?endif;?> 
    </div>
    Ответ написан
    Комментировать
  • 1с битрикс php как создать строку в инфоблоке с аналогичным расчетом по заданной формуле?

    @tlatypov Автор вопроса
    Вот решение! Помог будущий очень крутой спец по части Битрикса!

    || $arResult['LAST'][$id] && $arElem['SECTION']==1369 || $arResult['LAST'][$id] && $arElem['SECTION']==1371){

    Новый код с изменениями
    <?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();?>
    <div class='kpiIndicator'>
    	<?//pr($arParams);?>
    	<?if($arParams['MAIN_PAGE']!=='Y' && $arParams['EDIT']!=='Y'):?>
    		<div class='departmentFilter'>
    			<form action='<?=$APPLICATION->GetCurPage();?>' method='get' id='departmentFilterForm'>
    				<label>
    					Выбор подразделения для вывода отчетности
    					<?$APPLICATION->IncludeComponent('areal:department.select','links',
    						array(
    							'CACHE_TIME'=>'360000',
    							'EDIT_KPI'=>'Y',
    							'EDIT_EVENTS'=>'N',
    						),
    					false);?>
    				</label>
    			</form>
    		</div>
    	<?endif;?>
    	
    	<h2 class='KPIh2'>Основные показатели деятельности компании<?=($arParams['YEAR'] && $arParams['EDIT']==='Y')?' за '.$arParams['YEAR']:'';?></h2>
    	<?if($arParams['EDIT']!=='Y'):?>
    		<div class='period'>
    			<p>Период 
    				с <input type="text" class="datepicker" id='dpDateFrom' value='<?=date('Y')?>-01'/> 
    				по <input type="text" class="datepicker" id='dpDateTo' value='<?=date('Y')?>-<?=date('m')?>'/>
    			</p>
    		</div>
    	<?else:?>
    		<form action='<?=$APPLICATION->GetCurPage();?>' method='get' id='yearFilterForm'>
    			<label>
    				Выберите год, за который выводить отчет
    				<select name='year' id='yearKpiTable'>
    					<?for($i=2013;$i<=date('Y');$i++):?>
    						<option value='<?=$i?>'<?=($i==$arParams['YEAR'])?' selected':'';?>><?=$i?></option>
    					<?endfor;?>
    				</select>
    			</label>
    			<input type='hidden' value='Y' name='edit'/>
    		</form>
    	<?endif;?>
    	
    	<?if($arParams['EDIT']!=='Y'):?>
    		<table class='kpiIndicatorsTable'>
    			<tr>
    				<th class="first" width='46%'>ПОКАЗАТЕЛЬ</th>
    				<th class="second" width='18%'>ПЛАН (год)</th>
    				<th class="third" width='18%'>ФАКТ</th>
    				<th class="forth" width='18%'>% ВЫПОЛНЕНИЯ</th>
    			</tr>
    			<?foreach($arResult['INDICATORS'] as $id=>$arElem):?>
    				<?if($arResult['LAST'][$id] && $arElem['SECTION']==1368 || $arResult['LAST'][$id] && $arElem['SECTION']==2609 || $arResult['LAST'][$id] && $arElem['SECTION']==2610 || $arResult['LAST'][$id] && $arElem['SECTION']==2611){
    					$arResult['FACT'][$id]=$arResult['LAST'][$id];
    				}?>
    				<tr>
    					<td class='firstCol'><?=$arResult['INDICATOR_NAMES'][$arElem['SECTION']]?></td>
    					<td>
    						<?$plan=(double)$arElem['PLAN'];?>
    						<?=number_format(
    							$plan,
    							($plan-(int)$plan)?2:0,
    							'.',
    							' '
    						)?>
    					</td>
    					<td>
    						<?$fakt=(double)$arResult['FACT'][$id];?>
    						<?=number_format(
    							$fakt,
    							($fakt-(int)$fakt)?2:0,
    							'.',
    							' '
    						)?>
    					</td>
    					<td>
    					<?$res=((double)$arElem['PLAN'])?(double)($arResult['FACT'][$id]/$arElem['PLAN']*100):0?>
    					<?=number_format(
    							$res,
    							($res-(int)$res)?2:0, 
    							'.',
    							' '
    						);?>
    					</td>
    				</tr>
    			<?endforeach;?>
    		</table>
    		<?if($arResult['CAN_EDIT']):?>
    			<input type='hidden' name='year' id='year' value='<?=date('Y')?>' />
    			<input type='hidden' name='link' id='link' value='<?=$APPLICATION->GetCurPageParam('edit=Y',array('edit','save'));?>' />
    			<a href='<?=$APPLICATION->GetCurPageParam('edit=Y',array('edit','save'));?>' class='tableEdit'>Редактировать</a>
    		<?endif;?>
    	<?else:?>
    		<?$APPLICATION->SetTitle('');?>
    		<form action='<?=$APPLICATION->GetCurPage();?>' id='saveKpiInfo' method='post'>
    			<table class='kpiIndicatorsTable edited'>
    				<tr>
    					<th class="first" rowspan='2'>Показатель</th>
    					<th class="second" rowspan='2'>План на год</th>
    					<th class="third" colspan='12'>Факт по месяцам</th>
    					<th class="forth" rowspan='2' >% выполнения</th>
    				</tr>
    				<tr>
    					<?foreach($arResult['MONTHS'] as $m_id=>$month):?>
    						<th class='small'><?=$month?></th>
    					<?endforeach;?>
    				</tr>
    				<?foreach($arResult['INDICATORS'] as $id=>$arElem):?>
    					<?if($arResult['LAST'][$id] && $arElem['SECTION']==1368 || $arResult['LAST'][$id] && $arElem['SECTION']==2609 || $arResult['LAST'][$id] && $arElem['SECTION']==2610 || $arResult['LAST'][$id] && $arElem['SECTION']==2611){
    						$arResult['FACT'][$id]=$arResult['LAST'][$id];
    					}?>
    					<tr<?=($arElem['SECTION']==1368 || $arElem['SECTION']==2609 || $arElem['SECTION']==2610 || $arElem['SECTION']==2611)?' class="takeLastValue"':'';?>>
    						<td class='firstCol'><?=$arResult['INDICATOR_NAMES'][$arElem['SECTION']]?></td>
    						<td class='plan'>
    							<input type='text' value='<?=(double)$arElem['PLAN']?>' name='INDICATOR[<?=$id?>][PLAN]' class='planInput'/>
    						</td>
    						<?foreach($arResult['MONTHS'] as $m_id=>$month):?>
    							<td class='small'>
    								<input type='text' class='smallInp' value='<?=($arElem['MONTHS'][$m_id+1]['VALUE'])?$arElem['MONTHS'][$m_id+1]['VALUE']:'';?>' name='INDICATOR[<?=$id?>][MONTHS][<?=$m_id+1?>]'/>
    								<?if($arElem['MONTHS'][$m_id+1]['ID']):?>
    									<input type='hidden' value='<?=$arElem['MONTHS'][$m_id+1]['ID']?>' name='MONTHS[<?=$id?>][<?=$m_id+1?>]'/>
    								<?endif;?>
    							</td>
    						<?endforeach;?>
    						<td class='percent'><?=((double)$arElem['PLAN'])?round((double)($arResult['FACT'][$id]/$arElem['PLAN']*100),2):0;?></td>
    					</tr>
    				<?endforeach;?>
    			</table>
    			<?=bitrix_sessid_post()?>
    			<div class='tableEdit'>
    				<input type='submit' name='save' value='Сохранить' />
    				<a class='cancel' href='<?=$APPLICATION->GetCurPageParam('',array('edit','save','year'));?>'>Отменить</a>
    			</div>
    		</form>
    		<?/* <a href='<?=$APPLICATION->GetCurPageParam('save=Y',array('edit','save'));?>'>Сохранить</a> */?>
    	<?endif;?> 
    </div>
    Ответ написан