Несколько рекомендаций готовящимся к 1С:Специалист по Платформе

Публикация № 102366

Разработка - Решение задач на 1С:Специалист

Перед сдачей экзамена начитался в интернете мнений и отзывов, что времени на решение отведено очень мало (а это 4 часа) и что хватает только набить код и чуток отладить. После сдачи с этой точкой зрения не согласен, времени достаточно если вы быстро печатаете и быстро думаете=) Однако в процессе подготовки в голове волей-неволей складывался небольшой набор действий по оптимизации расхода времени и набор часто встречающихся механизмов, присутствующих, в той или иной модификации, в большинстве задач.  

Перед тем, как в принципе начать решение, а еще лучше до раздачи билетов, необходимо произвести некоторую настройку каркасной базы.

1. В свойствах конфигурации режим управления блокировками намеренно установлен в автоматический, хотя нужно управляемый.  Это необходимо исправить сразу, т.к. по мере решения вы можете насоздавать объектов с неверно установленным режимом управления блокировками, чем позже вы это заметите, тем больше потом исправлять. А если не заметите вовсе, могут "штрафануть".

2. Запустите хотя бы раз синтакс помощник.  Компы там не шибко мощные, и если СП ни разу не запускался с момента установки/обновления 1С, его индексация занимает время.

3. В настройках конфигуратора заранее зайдите в Сервис - Параметры и поставьте там "Управляемое приложение и обычное приложение". Это позволит быстро, когда это необходимо, запускать на исполнение конфигурацию в обычном режиме. В обычном режиме доступна консоль запросов. К этому пункту можно так же добавить, что в сети валяется управляемая консоль запросов, которую можно найти обычным поиском и перетащить себе на комп.

4.  Создайте сразу подсистемы, этим вы сделаете часть работы которую делать нужно все равно обязательно, однако наглядный интерфейс даже во время разработки упростит вам тестирование. Причем для оптимизации времени, как вариант, можно делать так: создаете подсистему ОперативныйУчет, далее в ней три подсистемы Документы, СправочникиИПланы, Регистры. После этого подсистему ОперативныйУчет раскопируйте еще на две (подчиненные тоже скопируются) и переименуйте в БухгалтерскийУчет и Расчет.

 5. Если вы пришли раньше (а я так понял, это все делают) то сидеть ждать, пока препод засунет ключ с лицензиями чтобы запускалась 1С, тоже не следует, откройте блокнот, и создайте себе несколько заготовок кода, который в любом случае понадобится.

 

 ОПЕРАТИВНЫЙ УЧЕТ

 

 6. Новая методика проведения документов. Используется в небольшом проценте задач, однако если попадется, не перемудрите с блокировками, тут ее надо устанавливать при помощи свойства БлокироватьДляИзменения, так же важно включить движения самого документа в запрос по отлову минусов. Пример ниже:

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

|РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка

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

 

7. Правильный порядок расположения операндов при расчете себестоимости. Проблема копеек. Есть мнение, что правильно делать так:

НоваяЗапись.Сумма = Выборка.КоличествоДокумент * Выборка.СуммаОстаток / Выборка.КоличествоОстаток;

То есть, умножение идет перед делением, что обеспечит в случае 3 * 10 / 3 число 10 а не число 9.99999999(9), как может быть при совсем неправильном порядке, однако методически такой способ не считается верным (это слова преподавателя из 1С), во-первых, деление по методике должно идти сначала, но деление не суммы на остаток количества, а количества к списанию на количество остатка, во-вторых, при равенстве количеств, лучше просто взять сумму, поэтому делая так, как ниже, проблем быть не должно:

НоваяЗапись.Сумма = ?(Выборка.КоличествоДокумент = Выборка.КоличествоОстаток, Выборка.СуммаОстаток, 
Окр(Выборка.КоличествоДокумент / Выборка.КоличествоОстаток,2) * Выборка.СуммаОстаток);

 

8. Правильная установка момента времени в качестве параметра запроса при проведении документа. Если документ по вашему решению может проводиться оперативно, то установку параметра для запроса оптимальнее делать так:

Запрос.УстановитьПараметр("МоментВремени", ?(РежимПроведения=РежимПроведенияДокумента.Оперативный, 
Неопределено
, МоментВремени()));

 


 9. Списание себестоимости по партиям, наиболее часто в том или ином варианте встречается при решении задач оперативного учета, бухгалерского тоже. Управляемая блокировка должна располагаться до получения данных запросом. Саму блокировку приведу ниже. Важный момент, сортировка при получении выборки, должна производиться по моменту времени, не по дате, и тем более не по ссылке. 

Движения.ОстаткиНоменклатуры.Записать();
Движения.Продажи.Записать();

Движения.ОстаткиНоменклатуры.Записывать = Истина;
Движения.Продажи.Записывать = Истина;

// ТУТ НЕОБХОДИМА УПРАВЛЯЕМАЯ БЛОКИРОВКА

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("Момент", ?(РежимПроведения=РежимПроведенияДокумента.Оперативный, Неопределено, МоментВремени()));
Запрос.Текст = "ВЫБРАТЬ
 |РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
 |СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество,
 |СУММА(РасходнаяНакладнаяСписокНоменклатуры.Сумма) КАК Сумма
 |ПОМЕСТИТЬ втТаблицаДокумента
 |ИЗ
 |Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
 |ГДЕ
 |РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
 |
 |СГРУППИРОВАТЬ ПО
 |РасходнаяНакладнаяСписокНоменклатуры.Номенклатура
 |;
 |
 |////////////////////////////////////////////////////////////////////////////////
 |ВЫБРАТЬ
 |втТаблицаДокумента.Номенклатура КАК Номенклатура,
 |ОстаткиНоменклатурыОстатки.Партия,
 |ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
 |ЕСТЬNULL(ОстаткиНоменклатурыОстатки.СуммаОстаток, 0) КАК СуммаОстаток,
 |втТаблицаДокумента.Количество КАК КоличествоДокумент,
 |втТаблицаДокумента.Сумма КАК СуммаДокумент,
 |втТаблицаДокумента.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры
 |ИЗ
 |втТаблицаДокумента КАК втТаблицаДокумента
 |ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
 |&Момент,
 |Номенклатура В
 |(ВЫБРАТЬ
 |втТаблицаДокумента.Номенклатура
 |ИЗ
 |втТаблицаДокумента КАК втТаблицаДокумента)) КАК ОстаткиНоменклатурыОстатки
 |ПО втТаблицаДокумента.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура
 |
 |УПОРЯДОЧИТЬ ПО
 |ОстаткиНоменклатурыОстатки.Партия.МоментВремени
 |ИТОГИ
 |СУММА(КоличествоОстаток),
 |СУММА(СуммаОстаток),
 |МАКСИМУМ(КоличествоДокумент),
 |МАКСИМУМ(СуммаДокумент)
 |ПО
 |Номенклатура";
Если РегистрыСведений.НастройкаУчетнойПолитики.ПолучитьПоследнее(Дата).УчетнаяПолитика = Перечисления.УчетнаяПолитика.ЛИФО Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст,"ОстаткиНоменклатурыОстатки.Партия.МоментВремени",
"ОстаткиНоменклатурыОстатки.Партия.МоментВремени УБЫВ"
); КонецЕсли; ВыборкаНоменклатура = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Номенклатура"); Пока ВыборкаНоменклатура.Следующий() Цикл Себестоимость = 0; Если ВыборкаНоменклатура.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Товар Тогда КоличествоСписать = ВыборкаНоменклатура.КоличествоДокумент; Если ВыборкаНоменклатура.КоличествоДокумент > ВыборкаНоменклатура.КоличествоОстаток Тогда Отказ = Истина; // Оповестить о нехватке. Продолжить; КонецЕсли; ВыборкаПартии = ВыборкаНоменклатура.Выбрать(); Пока КоличествоСписать > 0 И ВыборкаПартии.Следующий() Цикл НоваяЗапись = Движения.ОстаткиНоменклатуры.ДобавитьРасход(); НоваяЗапись.Период = Дата; НоваяЗапись.Номенклатура = ВыборкаНоменклатура.Номенклатура; НоваяЗапись.Партия = ВыборкаПартии.Партия; НоваяЗапись.Количество = Мин(КоличествоСписать, ВыборкаПартии.КоличествоОстаток); НоваяЗапись.Сумма = ?(ВыборкаПартии.КоличествоОстаток=НоваяЗапись.Количество,ВыборкаПартии.СуммаОстаток,
Окр(НоваяЗапись.Количество/ВыборкаПартии.КоличествоОстаток,2)*ВыборкаПартии.СуммаОстаток); КоличествоСписать = КоличествоСписать - НоваяЗапись.Количество; Себестоимость = Себестоимость + НоваяЗапись.Сумма; КонецЦикла; КонецЕсли; НоваяЗапись = Движения.Продажи.Добавить(); НоваяЗапись.Период = Дата; НоваяЗапись.Номенклатура = ВыборкаНоменклатура.Номенклатура; НоваяЗапись.Количество = ВыборкаНоменклатура.КоличествоДокумент; НоваяЗапись.Сумма = ВыборкаНоменклатура.СуммаДокумент; НоваяЗапись.Себестоимость = Себестоимость; КонецЦикла;

 

 10. Управляемая транзакционная блокировка регистра накопления. Приводится в действие сразу после вызова метода Заблокировать() и действует до окончания транзакции. Должна применяться всегда, когда на считываемые сначала данные опирается логика работы дальнейшего алгоритма.

Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиНоменклатуры");
ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");	
Блокировка.Заблокировать();

 

БУХГАЛТЕРСКИЙ УЧЕТ

 

11. Правильная организация процедуры ПередЗаписью документа РучнаяОперация, который необходимо реализовывать в любой задаче по бухгалтерскому учету. Процедура, разумеется, модуля объекта документа. Так же стоит помнить, что документу необходимо запретить проведение. 

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

Проводки = Движения.Управленческий;
Проводки.Записывать = Истина;
Если НЕ Проводки.Модифицированность() И НЕ ЭтоНовый() Тогда
           Проводки.Прочитать();
КонецЕсли;

Для каждого Проводка Из Проводки Цикл
           Проводка.Период = Дата;

 Если НЕ ЭтоНовый() И ПометкаУдаления <> Ссылка.ПометкаУдаления Тогда
                     Проводка.Активность = НЕ ПометкаУдаления;
 КонецЕсли;

КонецЦикла;

КонецПроцедуры

 

12. Управляемая транзакционная блокировка регистра бухгалтерии. 

Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрБухгалтерии.Управленческий");
ЭлементБлокировки.УстановитьЗначение("Счет", ПланыСчетов.Управленческий.Товары);
ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура, "Номенклатура");	
Блокировка.Заблокировать();

 13. Т.к. в разрабатываемой вами конфигурации присутствие документа РучнаяОперация является обязательным,это накладывает неявное, но обязательное требование - во всех запросах и отчетах, которые вы делаете для решения задачи, накладывать максимальное количество уточняющих условий на счета. К примеру, если в условии вашей задачи упомянуто, что  документ приходная делает проводку Дт Товары - Кт Поставщики, а расходная - Дт ПрибылиУбытки Кт Товары то анализируя потом для какой-либо цели (зависит от задачи) всю эту ситуацию, удобно использовать таблицу Обороты, задавая условие счета равное счету Товары,а на выходе дебетовый оборот будет со счетом Поставщики, а кредитовый - ПрибылиУбытки. Но в условии виртуальной таблицы обязательно нужно указать условие, приведенное ниже, и тогда РучнаяОперация, какая бы корреспонденция счетов там ни была введена, не сможет нарушить работу вашего запроса:

| КорСчет В (Значение(ПланСчетов.Управленческий.Поставщики), Значение(ПланСчетов.Управленческий.ПрибылиУбытки))

 

ПЕРИОДИЧЕСКИЕ РАСЧЕТЫ

 

14. Самое главное, это правильная организация процедуры расчета записей. Во-первых, желательно ей быть в общем модуле. И не только потому, что он выполняется на сервере, а потому, что это более универсально, чем в модуле конкретного документа. Во-вторых, желательно найти "золотую середину" при получении данных для расчета, с одной стороны неправильно получить одним махом все все данные для всего набора записей, и дальше в одном цикле делать расчет, с другой стороны - получать для каждой записи набора - избыточно. Вариант такой золотой середины ниже, данные получаются по принципу "один запрос на каждый вид расчета":

Процедура ПроизвестиРасчетНабора(НаборЗаписей) Экспорт
	
	Регистратор = НаборЗаписей.Отбор.Регистратор.Значение;
	
	Измерения = Новый Массив;
	Измерения.Добавить("Сотрудник");
	Измерения.Добавить("Подразделение");
	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("Регистратор", Регистратор);
	Запрос.УстановитьПараметр("Измерения", Измерения);
	
	///////////////////////////////
	// ПОВТОРЯЕМЫЙ БЛОК
	ВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Оклад;
	Если НаборЗаписей.ПроверитьНаличиеВидаРасчета(ВидРасчета) Тогда
	
		Запрос.УстановитьПараметр("ВидРасчета", ВидРасчета);		
		
		Запрос.Текст = ""; // ТЕКСТ ЗАПРОСА ДЛЯ КОНКРЕТНОГО ВИДА РАСЧЕТА
		
		Выборка = Запрос.Выполнить().Выбрать();
		
		Для каждого Запись Из НаборЗаписей Цикл
		
			Если Запись.ВидРасчета <> ВидРасчета Тогда
				Продолжить;
			КонецЕсли;
			
			Выборка.Сбросить();
			Если Выборка.НайтиСледующий(Запись.НомерСтроки, "НомерСтроки") Тогда			
				Запись.Результат = 0; // ФОРМУЛА ДЛЯ РАСЧЕТА
			КонецЕсли;
		КонецЦикла;
		
	КонецЕсли;
	///////////////////////////////
	
	НаборЗаписей.Записать(, Истина);
	
	
	// ПОВТОРЯЕМЫЙ БЛОК
	
	НаборЗаписей.Записать(, Истина);
	
	
	// ПОВТОРЯЕМЫЙ БЛОК
	
	НаборЗаписей.Записать(, Истина);	
	
КонецПроцедуры

 Функцию "ПроверитьНаличиеВидаРасчета" имеет смысл разместить в каждом регистре в модуле набора записей. Тогда повторяемые блоки будут универсальными. Сама функция имеет следующий вид:

Функция ПроверитьНаличиеВидаРасчета(ВидРасчета) Экспорт	
	Возврат ?(ЭтотОбъект.ВыгрузитьКолонку("ВидРасчета").Найти(ВидРасчета)=Неопределено,Ложь,Истина);	
КонецФункции


 15.  Заполнение сторно записей для набора записей регистра расчета.

ТаблицаДополнений = Движения.ОсновныеНачисления.ПолучитьДополнение();
Для каждого ЗаписьСторно Из ТаблицаДополнений Цикл
	Движение = Движения.ОсновныеНачисления.Добавить();
	ЗаполнитьЗначенияСвойств(Движение, ЗаписьСторно);
	Движение.ПериодРегистрации = ЗаписьСторно.ПериодРегистрацииСторно;
	Движение.ПериодДействияНачало = ЗаписьСторно.ПериодДействияНачалоСторно;
	Движение.ПериодДействияКонец = ЗаписьСторно.ПериодДействияКонецСторно;
	Движение.Сторно = Истина;
КонецЦикла;
 

16. Разбитие оклада при многократном изменении его значения внутри периода расчета. Вариант получения разбивки прямо в запросе. 

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("ДатаНачала", НачалоМесяца(ПериодРегистрации));
Запрос.УстановитьПараметр("ДатаОкончания", КонецМесяца(ПериодРегистрации));
Запрос.Текст = "ВЫБРАТЬ
 | ВложенныйЗапрос.Период,
 | ВложенныйЗапрос.Сотрудник,
 | ВложенныйЗапрос.Подразделение,
 | ВложенныйЗапрос.Оклад
 |ПОМЕСТИТЬ втИзмененияОклада
 |ИЗ
 | (ВЫБРАТЬ
 | СведенияОСотрудникахСрезПоследних.Период КАК Период,
 | СведенияОСотрудникахСрезПоследних.Сотрудник КАК Сотрудник,
 | СведенияОСотрудникахСрезПоследних.Подразделение КАК Подразделение,
 | СведенияОСотрудникахСрезПоследних.Оклад КАК Оклад
 | ИЗ
 | РегистрСведений.СведенияОСотрудниках.СрезПоследних(&ДатаНачала, ) КАК СведенияОСотрудникахСрезПоследних
 | 
 | ОБЪЕДИНИТЬ ВСЕ
 | 
 | ВЫБРАТЬ
 | СведенияОСотрудниках.Период,
 | СведенияОСотрудниках.Сотрудник,
 | СведенияОСотрудниках.Подразделение,
 | СведенияОСотрудниках.Оклад
 | ИЗ
 | РегистрСведений.СведенияОСотрудниках КАК СведенияОСотрудниках
 | ГДЕ
 | СведенияОСотрудниках.Период МЕЖДУ &ДатаНачала И &ДатаОкончания) КАК ВложенныйЗапрос
 |;
 |
 |////////////////////////////////////////////////////////////////////////////////
 |ВЫБРАТЬ
 | ВложенныйЗапрос.ПериодРегистрации,
 | ВложенныйЗапрос.Сотрудник КАК Сотрудник,
 | ВложенныйЗапрос.Подразделение КАК Подразделение,
 | ВложенныйЗапрос.ВидРасчета,
 | ВложенныйЗапрос.Оклад,
 | ВЫБОР
 | КОГДА ВложенныйЗапрос.Период1 ЕСТЬ NULL 
 | ИЛИ ВложенныйЗапрос.Период1 < ВложенныйЗапрос.ДатаНачала
 | ТОГДА ВложенныйЗапрос.ДатаНачала
 | ИНАЧЕ ВложенныйЗапрос.Период1
 | КОНЕЦ КАК ПериодДействияНачало,
 | ВЫБОР
 | КОГДА ВложенныйЗапрос.Период2 ЕСТЬ NULL 
 | ТОГДА КОНЕЦПЕРИОДА(ВложенныйЗапрос.ДатаОкончания, ДЕНЬ)
 | ИНАЧЕ ДОБАВИТЬКДАТЕ(ВложенныйЗапрос.Период2, СЕКУНДА, -1)
 | КОНЕЦ КАК ПериодДействияКонец
 |ИЗ
 | (ВЫБРАТЬ
 | НачислениеЗарплатыОсновныеНачисления.Ссылка.ПериодРегистрации КАК ПериодРегистрации,
 | НачислениеЗарплатыОсновныеНачисления.Сотрудник КАК Сотрудник,
 | НачислениеЗарплатыОсновныеНачисления.Подразделение КАК Подразделение,
 | НачислениеЗарплатыОсновныеНачисления.ВидРасчета КАК ВидРасчета,
 | втИзмененияОклада1.Оклад КАК Оклад,
 | НачислениеЗарплатыОсновныеНачисления.ДатаНачала КАК ДатаНачала,
 | НачислениеЗарплатыОсновныеНачисления.ДатаОкончания КАК ДатаОкончания,
 | втИзмененияОклада1.Период КАК Период1,
 | МИНИМУМ(втИзмененияОклада2.Период) КАК Период2
 | ИЗ
 | Документ.НачислениеЗарплаты.ОсновныеНачисления КАК НачислениеЗарплатыОсновныеНачисления
 | ЛЕВОЕ СОЕДИНЕНИЕ втИзмененияОклада КАК втИзмененияОклада1
 | ЛЕВОЕ СОЕДИНЕНИЕ втИзмененияОклада КАК втИзмененияОклада2
 | ПО втИзмененияОклада1.Сотрудник = втИзмененияОклада2.Сотрудник
 | И втИзмененияОклада1.Подразделение = втИзмененияОклада2.Подразделение
 | И втИзмененияОклада1.Период < втИзмененияОклада2.Период
 | ПО НачислениеЗарплатыОсновныеНачисления.Сотрудник = втИзмененияОклада1.Сотрудник
 | И НачислениеЗарплатыОсновныеНачисления.Подразделение = втИзмененияОклада1.Подразделение
 | И (НачислениеЗарплатыОсновныеНачисления.ВидРасчета = ЗНАЧЕНИЕ(ПланВидовРасчета.Основныеначисления.Оклад))
 | ГДЕ
 | НачислениеЗарплатыОсновныеНачисления.Ссылка = &Ссылка
 | 
 | СГРУППИРОВАТЬ ПО
 | НачислениеЗарплатыОсновныеНачисления.Ссылка.ПериодРегистрации,
 | НачислениеЗарплатыОсновныеНачисления.Сотрудник,
 | НачислениеЗарплатыОсновныеНачисления.Подразделение,
 | НачислениеЗарплатыОсновныеНачисления.ВидРасчета,
 | втИзмененияОклада1.Оклад,
 | НачислениеЗарплатыОсновныеНачисления.ДатаНачала,
 | НачислениеЗарплатыОсновныеНачисления.ДатаОкончания,
 | втИзмененияОклада1.Период) КАК ВложенныйЗапрос
 |
 |УПОРЯДОЧИТЬ ПО
 | Сотрудник,
 | Подразделение,
 | ПериодДействияНачало";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
	НоваяЗапись = Движения.ОсновныеНачисления.Добавить();
	ЗаполнитьЗначенияСвойств(НоваяЗапись, Выборка);
КонецЦикла;

К данному способу нужно добавить установку параметров виртуальной таблицы среза последних, ограничить только имеющимися в документе сотрудниками. Так же нужно ограничить возможность указания периода действия записей месяцем, отличным от периода регистрации (ну или не ограничивать, тогда получать изменения оклада за более длительный интервал времени). 

 

17. Разбитие на периоды на границе месяца при еженедельных начислениях, прямо в запросе. Часто встречаются задачи с еженедельными начислениями, одна из особенностей в этом случае - переход через месяц в пределах одной недели. В этом случае нужно получить две записи регистра расчета, соответствуюх одной записи документа. 

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

 

18. "Обеспечить пользователю возможность редактировать результат расчета прямо в документе" - такое условие тоже встречается нередко. В этом случае в форме документа размещается кнопка "Расчет", которая и производит весь расчет. Вариант процедуры модуля формы ниже:

ОбъектСервер = РеквизитФормыВЗначение("Объект");
ОбъектСервер.СформироватьДвиженияДокумента();
	
Расчет.ПроизвестиРасчетНабора(ОбъектСервер.Движения.ОсновныеНачисления);
Расчет.ПроизвестиРасчетНабора(ОбъектСервер.Движения.ДополнительныеНачисления);
	
ОбъектСервер.ОсновныеНачисления.Загрузить(ОбъектСервер.Движения.ОсновныеНачисления.Выгрузить());
ОбъектСервер.ДополнительныеНачисления.Загрузить(ОбъектСервер.Движения.ДополнительныеНачисления.Выгрузить());
	
ОбъектСервер.Движения.ОсновныеНачисления.Очистить();
ОбъектСервер.Движения.ОсновныеНачисления.Записать();
ОбъектСервер.Движения.ДополнительныеНачисления.Очистить();
ОбъектСервер.Движения.ДополнительныеНачисления.Записать();	
	
ЗначениеВРеквизитФормы(ОбъектСервер,"Объект");

Процедура СформироватьДвиженияДокумента располагается в модуле объекта документа и просто записывает содержимое табличных частей в регистр, в неизменном виде, включая колонку "Результат". Вызывается она как в модуле формы, так и при проведении документа. Процедура ПроизвестиРасчетНабора была описана выше. 

 

 19. Перерасчет только тех записей набора, которые требуют перерасчета. Такое условие есть в нескольких задачах и чтобы его обработать, необходимо процедуру расчета (в моих примерах это ПроизвестиРасчетНабора) модифицировать, чтобы она учитывала переданный второй параметр, НомерСтроки. В случае, если номер строки отличается от Неопределено, процедура должна перерасчитывать только ту запись, номер которой в нее попал. Запрос для связки записей перерасчета с записями регистра, для получения номера строки, ниже:

Запрос = Новый Запрос;	
Запрос.Текст = "ВЫБРАТЬ
 | ОсновныеНачисления.НомерСтроки,
 | ""Основные"" КАК Регистр,
 | Перерасчет1.ОбъектПерерасчета
 |ИЗ
 | РегистрРасчета.ОсновныеНачисления КАК ОсновныеНачисления
 | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрРасчета.ОсновныеНачисления.Перерасчет1 КАК Перерасчет1
 | ПО ОсновныеНачисления.ВидРасчета = Перерасчет1.ВидРасчета
 | И ОсновныеНачисления.Регистратор = Перерасчет1.ОбъектПерерасчета
 | И ОсновныеНачисления.Сотрудник = Перерасчет1.Сотрудник
 | И ОсновныеНачисления.Подразделение = Перерасчет1.Подразделение
 |
 |ОБЪЕДИНИТЬ ВСЕ
 |
 |ВЫБРАТЬ
 | ДополнительныеНачисления.НомерСтроки,
 | ""Дополнительные"",
 | Перерасчет1.ОбъектПерерасчета
 |ИЗ
 | РегистрРасчета.ДополнительныеНачисления КАК ДополнительныеНачисления
 | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрРасчета.ДополнительныеНачисления.Перерасчет1 КАК Перерасчет1
 | ПО ДополнительныеНачисления.ВидРасчета = Перерасчет1.ВидРасчета
 | И ДополнительныеНачисления.Регистратор = Перерасчет1.ОбъектПерерасчета
 | И ДополнительныеНачисления.Сотрудник = Перерасчет1.Сотрудник
 | И ДополнительныеНачисления.Подразделение = Перерасчет1.Подразделение
 |
 |ОБЪЕДИНИТЬ ВСЕ
 |
 |ВЫБРАТЬ
 | Удержания.НомерСтроки,
 | ""Удержания"",
 | Перерасчет1.ОбъектПерерасчета
 |ИЗ
 | РегистрРасчета.Удержания КАК Удержания
 | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрРасчета.Удержания.Перерасчет1 КАК Перерасчет1
 | ПО Удержания.ВидРасчета = Перерасчет1.ВидРасчета
 | И Удержания.Регистратор = Перерасчет1.ОбъектПерерасчета
 | И Удержания.Сотрудник = Перерасчет1.Сотрудник
 | И Удержания.Подразделение = Перерасчет1.Подразделение";
		
	Выборка = Запрос.Выполнить().Выбрать();
	Пока Выборка.Следующий() Цикл
		Если Выборка.Регистр = "Основные" Тогда
			Набор = РегистрыРасчета.ОсновныеНачисления.СоздатьНаборЗаписей();
		ИначеЕсли Выборка.Регистр = "Дополнительные" Тогда
			Набор = РегистрыРасчета.ДополнительныеНачисления.СоздатьНаборЗаписей();
		ИначеЕсли Выборка.Регистр = "Удержания" Тогда
			Набор = РегистрыРасчета.Удержания.СоздатьНаборЗаписей();
		КонецЕсли;
		Набор.Отбор.Регистратор.Установить(Выборка.ОбъектПерерасчета);
		Набор.Прочитать();
		Набор.Записать();
		Расчет.ПроизвестиРасчетНабора(Набор, Выборка.НомерСтроки);
	КонецЦикла;

 

20. Заполнение диаграммы Ганта. 

 

// ЗАПРОС ПО ФАКТИЧЕСКОМУ ПЕРИОДУ ДЕЙСТВИЯ
Диаграмма.Обновление = Ложь;
Диаграмма.Очистить();	
Пока Выборка.Следующий() Цикл
              Серия = Диаграмма.УстановитьСерию(Выборка.Сотрудник);
	Точка = Диаграмма.УстановитьТочку(Выборка.ВидРасчета);
	ТекущееЗначение = Диаграмма.ПолучитьЗначение(Точка,Серия);		
	Интервал = ТекущееЗначение.Добавить();
	Интервал.Начало = Выборка.ПериодДействияНачало;
	Интервал.Конец  = Выборка.ПериодДействияКонец;
КонецЦикла; 	
Диаграмма.Обновление = Истина;

20. И последнее, но тоже важное. Наиболее оптимальное по соотношению "затраченное время - результат" изменение обработки ЗаполнениеГрафика. В реальной жизни так делать было бы ошибкой, но т.к. вы на экзамене, и перезаполнять данные разных годов, сохраняя предыдущие значения, вам врядли понадобится, имейте ввиду три действия ниже:

Процедура ЗаполнитьГрафик(ДатаНачала, ДатаОкончания, ВыходныеДни, ГрафикРаботы) Экспорт 

Набор = РегистрыСведений.ГрафикиРаботы.СоздатьНаборЗаписей();
Набор.Отбор.ГрафикРаботы.Установить(ГрафикРаботы); // 1. ДОБАВЛЯЕМ ОТБОР ПО ГРАФИКУ
//Набор.Прочитать(); // 2. КОММЕНТИРУЕМ ЧТЕНИЕ НАБОРА

ЧислоСекундВСутках = 86400;

Дат = ДатаНачала;
Для к = 0 По Набор.Количество()-1 Цикл

Запись = Набор[к];
Если Запись.Дата < ДатаНачала Тогда
    Продолжить;
ИначеЕсли Запись.Дата =Дат Тогда
Если Найти(ВыходныеДни, Строка(ДеньНедели(Дат))) Тогда
Запись.Значение = 0;
Иначе          
Запись.Значение = 8;
КонецЕсли;
Дат = Дат + ЧислоСекундВСутках;
Иначе
Пока Дат < Мин(Запись.Дата, ДатаОкончания) Цикл
НоваяЗапись = Набор.Добавить();
НоваяЗапись.Дата = Дат;
Если Найти(ВыходныеДни, Строка(ДеньНедели(Дат))) Тогда
НоваяЗапись.Значение = 0;
Иначе          
НоваяЗапись.Значение = 8;
КонецЕсли; 
Дат = Дат + ЧислоСекундВСутках;
КонецЦикла; 
Если Запись.Дата > ДатаОкончания Тогда
Прервать;
Иначе
Если Найти(ВыходныеДни, Строка(ДеньНедели(Дат))) Тогда
Запись.Значение = 0;
Иначе          
Запись.Значение = 8;
КонецЕсли;
КонецЕсли;
Дат = Дат + ЧислоСекундВСутках;
КонецЕсли; 
КонецЦикла;
Набор.Записать();

Пока Дат <= ДатаОкончания Цикл
Запись = Набор.Добавить();
Запись.ГрафикРаботы = ГрафикРаботы; // 3. ВСТАВЛЯЕМ НУЖНЫЙ ГРАФИК
Запись.Дата = Дат;
Если Найти(ВыходныеДни, Строка(ДеньНедели(Дат))) Тогда
Запись.Значение = 0;
Иначе          
Запись.Значение = 8;
КонецЕсли; 
Дат = Дат + ЧислоСекундВСутках;
КонецЦикла; 
Набор.Записать();

КонецПроцедуры

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
0. correct_coding 448 01.01.70 03:00 Сейчас в теме
Перед сдачей экзамена начитался в интернете мнений и отзывов, что времени на решение отведено очень мало (а это 4 часа) и что хватает только набить код и чуток отладить. После сдачи с этой точкой зрения не согласен, времени достаточно если вы быстро печатаете и быстро думаете=) Однако в процессе подготовки в голове волей-неволей складывался небольшой набор действий по оптимизации расхода времени и набор часто встречающихся механизмов, присутствующих, в той или иной модификации, в большинстве задач.

Перейти к публикации

1. Новиков 291 20.12.11 17:57 Сейчас в теме
Молодец! Хорошая информация. Но, инфа кажется не полной без:

1. Когда сам сдавал?
2. С какого раза сдал?
3. На курсы какие-нибудь ходил или тренинги?
4. Сколько времени убито на подготовку?
5. Ну и конечно, пруфлинки на ресурсы, которые помогли!

Статьи такие уважаю!
samadov; Open-BS; quNas; Pechenuych_ka; Mixmaister; +5 Ответить
2. tango 485 20.12.11 18:36 Сейчас в теме
автор мегамонстр +++
sulfur17; +1 Ответить
3. andru_dv 21.12.11 00:45 Сейчас в теме
Да, полезная информация для сдачи зачета.
Спасибо!
4. tslk 25 21.12.11 05:08 Сейчас в теме
В пункте 6 по моему ошибочка :

Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Количество() Тогда
-------------------------^
Отказ = Истина;
КонецЕсли;
5. svsource 21.12.11 08:33 Сейчас в теме
В общем ходил я на все курсы, тренинги по 8.2. За все сам платил. Хочу сказать что Вы молодец. Все что написано - по делу исключительно. Замечания АБСОЛЮТНО правильные. 5+ Вам. Сейчас как раз решаю задачи на время из СПЕЦА 8.2 по платформе. Планирую до майских обязательно сдать. То, что Вы написали - БУКВАЛЬНО то, что нам Гончаров Дмитрий, Козырев Дмитрий и т.д. на курсах несколько раз повторяли. Народ в 1С (преподаватели) все ПРАКТИКУЮЩИЕ СПЕЦЫ. Втереть им лажу не прокатит. Я хотел после курсов сразу пойти сдавать, Но Дмитрий Гончаров мой пыл охладил. Решать то я решаю задачи - но сейчас особенно!!!! требование решить АКАДЕМИЧЕСКИ ПРАВИЛЬНО, а не только чтоб работало :) Полно примеров, когда все работает - но ставят 2. Народ обижается конечно - у меня друг на 4-ый круг пошел. Очень требуют чтоб задания были решены с учетом специфики именно платформы 8.2 и обязательно работали в тонком клиенте! Все что Вы написали - еще раз говорю - ПРАВИЛЬНО и АКТУАЛЬНО!!! Очень полезно для сдающих Спеца по платформе 8.2. С Уважением, Сергей.
sulfur17; 1С-Учебный Центр №3; +2 Ответить
46. 1С-Учебный Центр №3 14.03.13 18:56 Сейчас в теме
(5) svsource,
То, что Вы написали - БУКВАЛЬНО то, что нам Гончаров Дмитрий, Козырев Дмитрий и т.д. на курсах несколько раз повторяли. Народ в 1С (преподаватели) все ПРАКТИКУЮЩИЕ СПЕЦЫ. Втереть им лажу не прокатит. Я хотел после курсов сразу пойти сдавать, Но Дмитрий Гончаров мой пыл охладил. Решать то я решаю задачи - но сейчас особенно!!!! требование решить АКАДЕМИЧЕСКИ ПРАВИЛЬНО, а не только чтоб работало :)

Спасибо за то, что выбираете наши курсы! Надеемся, что они действительно помогают.
Хочется обратить внимание на то, что наш учебный центр запустил новый проект WEB-обучение. Курсов уже много (http://www.1c-uc3.ru/web_obuchenie.html), но в контексте данной темы (про подготовку к экзамену) особо полезен WEB-курс "Решение задачи, схожей с задачей экзамена 1С:Специалист по платформе 1С:Предприятие 8.2". Автор и ведущий - сам Дмитрий Гончаров. Более подробная информация здесь: http://www.1c-uc3.ru/web-specv8.html
6. musatov1c.ru 21.12.11 08:42 Сейчас в теме
Очень интересно. Просмотрел пока мельком. Оставляю как закладку для изучения. Требуется еще время для специалиста. :)
7. pparshin 186 21.12.11 09:00 Сейчас в теме
Замечательно! По делу и без воды.

У меня три вопроса.
1.в сети валяется управляемая консоль запросов
Какая сеть имеется ввиду?
2.откройте блокнот, и создайте себе несколько заготовок
Подразумевается блокнот, который Notepad?
3.За какое время до начала экзамена можно приходить?
8. sa1m0nn 22 21.12.11 09:10 Сейчас в теме
Спасибо, в мемориз. 2 раза уже лажанулся именно по причине нехватки времени, в январе на третий заход.
9. Alexey55 21.12.11 10:17 Сейчас в теме
Спасибо! очень полезная информация
10. DragonAgo 11 21.12.11 10:52 Сейчас в теме
Вот бы знать, как же правильно решить ту или иную задачу, в книгах и то не расписывается конкретика, все в основном либо сам достигаешь либо из форумов...Хоть и получается успешно изменять конфигурации, типовые отчеты, но до сих пор понимаю я ничего не знаю
sulfur17; +1 Ответить
11. DragonAgo 11 21.12.11 10:52 Сейчас в теме
Хорошая статья!!!Автору риспект
12. ms200999 21.12.11 11:58 Сейчас в теме
Вот действительно достойная работа. Побольше бы подобных публикаций.
sulfur17; +1 Ответить
13. progr21 21.12.11 13:47 Сейчас в теме
Спасибо автору за щедрость, за то, что поделился свои опытом! Не только сам сдал, но и подумал о других сдающих, которым предстоит пройти этот же путь. Очень толковая публикация.
14. dell_anna 21.12.11 14:09 Сейчас в теме
Хорошая статья! Спасибо за проделанную работу! И все таки можете ответить на вопрос:
1. За какое время до экзамена можно прийти?
2. Сразу пускают в кабинет, чтобы например проделать все необходимые манипуляции (подготовки)?
15. no_registration 21.12.11 19:11 Сейчас в теме
16. Программулькин 288 22.12.11 06:32 Сейчас в теме
Хорошая статья. Нужная,актуальная. Вот ещё бы ответы автора на заданные тут вопросы получить, было бы вообще чудненько.
17. F1_1 22.12.11 09:17 Сейчас в теме
Согласен с практически со всем комментраиями. Очень нужная статья. И как раз вовремя - решился на сдачу. Готовлюсь. Особенно нужным кажется высказывание про "АКАДЕМИЧЕСКИ ПРАВИЛЬНЫМ".
Автору - большое спасибо.
18. dandrontiy 22.12.11 10:50 Сейчас в теме
Автору реальный респект! Если бы автор сего поста составил список правильных Академически решений по темам (не все билеты, а сам подход, видно что автор именно концептуально подходит к вопросу, что очень ценно) такую работу и за деньги было бы не грех приобрести! Труд проделанный им - очень полезен, готов так сказать оформить подписку на методические статьи...
20. dkprim 5 22.12.11 15:11 Сейчас в теме
невероятно полезная статья. краткость - сестра таланта. автору спасибо :)
21. DimanYa 23.12.11 07:22 Сейчас в теме
Где вы были месяц назад? =) А та прибавлю свои 5 копеек. Дома обязательно попытайтесь сделать один билет на время. Это кажется, что 4 часа, что даётся на экзамен это много. А когда начинаешь делать там, то времени жутко не хватает. И не забывайте сохраняться. У меня на сдаче вылетела 1с и я потерял 25 минут работы.
22. prestige 23.12.11 16:03 Сейчас в теме
Спасибо, написано умно, полезно и "академически правильно";)
23. Fruit83 28 25.12.11 13:23 Сейчас в теме
Спасибо! понадобится в подготовке!
24. thang_madi 26.12.11 10:07 Сейчас в теме
25. Гость 27.12.11 22:39
Спасибо большое за подробное описание и полезные реальные рекомендации. Ну очень бы хотелось получить от автора ответы на заданные в комментариях вопросы. Планирую сдавать спеца, хотелось бы оценить шансы и заложить время на подготовку. Еще раз спасибо.
26. Созинов 30.12.11 10:25 Сейчас в теме
Автору плюс. Как было сказано выше, неплохо было бы добавить пруфлинки на ресурсы, которые помогли в подготовке.
27. Bassgood 07.01.12 01:49 Сейчас в теме
(0) Хотел бы задать автору статьи некоторые вопросы и предложить внести некоторые изменения в ее содержание с целью более полного обзора:
1. Поясните почему нужно применить именно управляемый, а не автоматический режим управления блокировками?
6.1. Можно было бы дописать, что новая методика проведения заключается в том, что сначала записываются движения документа по соответствующему регистру, а затем уже производится проверка на наличие в регистре отрицательных остатков. И сказать что таких задач, в которых применяется новая методика проведения, небольшой процент - мне кажется ошибочно, она применяется в задачах, требующих контроль остатков, а таковыми являются практически все задачи по оперативному учету, в которых происходит списание товаров.
6.2. Почему мы применили свойство набора записей БлокироватьДляИзменения, а не использовали управляемые транзакционные блокировки, как это было сделано в последующих примерах?
6.3. В запросе в качестве параметра не указана ссылка на документ, из которого выбираются товары и помещаются в "втДанныеДокумента".
6.4. Ошибка в выборке запроса: "Если Выборка.Количество() Тогда"
7. А почему вместо этого нельзя просто использовать округление (функция Окр())?
8. Здесь можно добавить, что это сделано с целью увеличения скорости исполнения запроса, т.к. получение текущих остатков (актуальных, что соответствует методике оперативного проведения) производится быстрее, нежели на какой-либо другой момент времени.
sulfur17; Rustig; +2 Ответить
28. ipyu 13.01.12 23:13 Сейчас в теме
Огромное спасибо за очень подробную и полезную информацию.
29. Uncore 14.01.12 08:18 Сейчас в теме
Очень полезная информация. Автору +1
30. VictorK 22.02.12 21:24 Сейчас в теме
Очень ценная информация для подготовки к экзамену, раньше такой информации не найти было! Жаль, что не все готовы делиться такой информацией. Спасибо!!!!!
31. Flashill 323 25.02.12 14:55 Сейчас в теме
1. В свойствах конфигурации режим управления блокировками намеренно установлен в автоматический, хотя нужно управляемый. Это необходимо исправить сразу, т.к. по мере решения вы можете насоздавать объектов с неверно установленным режимом управления блокировками, чем позже вы это заметите, тем больше потом исправлять. А если не заметите вовсе, могут "штрафануть".


На сколько я помню из вопросов на 1С: Профессионала по платформе 8.2, то
"Управляемый" и "Автоматический" - эти режимы принудительно включают выбранный способ управления блокировками. Т.е. не важно какой способ поставился во всех новых созданных объектах. Если в свойствах самой конфигурации стоит "Управляемый" - то он будет привилегированным, автоматического не будет.
А вот если поставить "Автоматический и управляемый", то тогда действительно придется править режим блокировок во всех объектах.

sulfur17; +1 Ответить
32. Sanek_GAL 25.02.12 15:34 Сейчас в теме
Спасибо! Очень полезная информация.
33. dimk@a 21.03.12 13:03 Сейчас в теме
Спасибо! Вот это правильный, системный подход! и стимул - времени достаточно, нужно только знать как им распорядиться.
34. Artemuch2 21.03.12 15:20 Сейчас в теме
Доброе время суток! по своему опыту знаю что с первого раза сдать не получится точно - это раз. если ты не делал такое же задание то не успеешь ну или мегабыстрый программист- это два. на задании нужно решать только поставленную задачу и не отвлекаться ни на какие красивости- это три. ну и настроение преподавателя-это четыре
35. gavrikprog 109 28.03.12 18:53 Сейчас в теме
Кто знает, в терминале при сдаче дистанционно буфер обмена работает ?

т.е. я пишу код локально, потом зашел в терминал и время пошло. А тот код кот. писал локально скопировал в терминал.
36. ris83 05.04.12 10:21 Сейчас в теме
"Если Выборка.Количество() Тогда"

Никакой тут ошибки нет...вспомните неявное преобразование типов! Число преобразуется в булево по принципу 0-ложь, а все что больше в истину...Поэтому если результат запроса пустой то будет преобразовано в ЛОЖЬ. а если хоть одна или больше записей то будет ИСТИНА
demart-omsk; vitaliy1911; timeforlive; veretennikoff; Olenevod; igor-pn; RailMen; Rustig; +8 Ответить
37. cmd_vasec 34 05.04.12 10:58 Сейчас в теме
Спасибо. Отличная статья.
38. LivingStar 25 22.04.12 16:22 Сейчас в теме
а не верно ли получать учетную политику следующим образом?
|
// 1). Получение учетной политики ->
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| УчетнаяПолитикаСрезПоследних.Период,
| УчетнаяПолитикаСрезПоследних.МетодСписания
|ИЗ
| РегистрСведений.УчетнаяПолитика.СрезПоследних(, ГОД(период) = &Год) КАК УчетнаяПолитикаСрезПоследних";
Запрос.УстановитьПараметр("Год",Год(ТекущаяДата()));
Рез = Запрос.Выполнить().Выбрать();
Рез.Следующий();
УчетнаяПолитика = Рез.МетодСписания;
Если Не ЗначениеЗаполнено(УчетнаяПолитика) Тогда
Сообщить("Не заполнена учетная политика на " + Формат(ТекущаяДата(), "ДФ=""гггг""") + " год!");
Возврат;
КонецЕсли;
39. Sunhare 3 11.05.12 14:11 Сейчас в теме
40. lolidy 18.05.12 06:55 Сейчас в теме
Спасибо большое! Очень полезная статья, скоро иду сдавать, очень пригодятся эти советы.
41. v.l. 25.06.12 13:09 Сейчас в теме
Статью прочитал "по диагонали", но радует описание, а не тупая копипаста в док-файл, который надо скачать.
42. MakcTLT63 9 13.07.12 06:30 Сейчас в теме
не ну круто конечно, наверное..
но, после такого заполнения значений, дальше читать уже не хочется

Для каждого Строка Из СписокНоменклатуры Цикл
Запись = Движения.ТоварыНаСкладах.ДобавитьРасход();
Запись.Период = Дата;
Запись.Номенклатура = Строка.Номенклатура;
Запись.Склад = Склад;
Запись.Количество = Строка.Количество;
КонецЦикла;

И еще.. писать такую конструкцию ?(3=3,10, Окр(4/3,2)*10), да и вообще весь 7 пункт - это что-то за гранью добра и зла..
43. RailMen 04.09.12 21:55 Сейчас в теме
44. Pechenuych_ka 11.02.13 19:24 Сейчас в теме
45. Bukaska 131 11.02.13 20:36 Сейчас в теме
Хорошая статья, но поясните разницу между этим:
Запись = Движения.ТоварыНаСкладах.ДобавитьРасход();
И этим:
Запись = Движения.ТоварыНаСкладах.Добавить()
Запись.ВидДвижения = ВидДвиженияНакопления.Расход()
Почему то в питере преподаватели рекомендуют все вариант ниже.
47. manan 27.03.13 22:19 Сейчас в теме
Вот здесь http://infostart.ru/public/66244/ решения более 100 задач из актуального"Сборника задач для подготовки к экзамену "1С:Специалист" по платформе "1С:Предприятие 8". Версия 8.2 (артикул 4601546078247)" (редакция 3, 2011 год)
sulfur17; +1 Ответить
48. Graf_Cash 21.05.13 11:33 Сейчас в теме
Очень много полезной информации в одном месте.
Коротко и по-делу. Спасибо
49. Limas 27.06.13 12:01 Сейчас в теме
Если бы эта статья мне попалась до сдачи спеца по платформе, думаю сдал бы с первого, а не с пятого раза :))) насчет четырех часов их было действительно очень мало, т.к писать нужно правильно сразу, времени на выбор варианта, оптимизацию, поиск ошибок и отладку нету, недаром ведь время сдачи увеличили до 5 часов.
50. valex1c 06.08.13 16:35 Сейчас в теме
51. Yav4ik 1 07.08.13 11:39 Сейчас в теме
Интеренсая статья, спасибо!
52. andr_andrey 8 14.01.14 12:07 Сейчас в теме
7 пункт, с округлением до 2 знаков результата деления, без пояснения - вредный совет.
53. Isperator 18.04.14 13:18 Сейчас в теме
Статья хорошая, но сейчас сдают на Платформе 8.3. Кто нибудь может освежить информацию? Заранее спасибо.
54. kn 103 18.04.14 13:52 Сейчас в теме
(53)А что новые билеты на Спеца по 8.3 или просто на другой платформе?
55. Bukaska 131 18.04.14 14:47 Сейчас в теме
(54) kn, Ничего пока что не меняется.. главное чтобы работал интерфейс Такси.. то есть если на 8.2 важен был тонкий клиент, то для 8.3 надо чтобы работало в интерфейсе такси)
sulfur17; 1С-Учебный Центр №3; +2 Ответить
56. kn 103 18.04.14 15:06 Сейчас в теме
57. Isperator 23.04.14 15:06 Сейчас в теме
(54) kn, Звонил в 1С обещают сборник задач по 8.3 в конце мая. Изменятся ли задачи полностью или частично мне не ответили.
1С-Учебный Центр №3; +1 Ответить
59. 1С-Учебный Центр №3 23.04.14 17:42 Сейчас в теме
(57) Isperator, Принципиальных изменений нет, но формулировки немного изменились.

В сборнике будет единственная новая задача, которая можем попасться на экзамене.

Изменены требования к интерфейсу, теперь это обязательно Такси.

Изменился технический принцип компоновки задач.
Задача на экзамене будет собираться случайным образом из заранее подготовленных фрагментов.
58. kn 103 23.04.14 17:33 Сейчас в теме
Спасибо, встречалась такая информация тоже, теперь значит точно.
60. 1С-Учебный Центр №3 21.05.14 18:26 Сейчас в теме
Приглашаем на однодневный мастер-класс "Решение сквозной задачи с использованием платформы "1С:Предприятие 8" для подготовки к экзамену 1С:Специалист по платформе "1С:Предприятие 8", который состоится 29 мая 2014 г. :)
61. Isperator 22.05.14 12:58 Сейчас в теме
(60) 1С-Учебный Центр №3, Не подскажите, новый сборник задач вышел?
62. Bukaska 131 22.05.14 13:09 Сейчас в теме
63. 1С-Учебный Центр №3 22.05.14 13:11 Сейчас в теме
(61) Isperator, на данный момент сборник по 8.3 еще не вышел, ждем информационного письма от 1С
64. Isperator 26.05.14 13:10 Сейчас в теме
(63) 1С-Учебный Центр №3, Спасибо за информацию.
91. v.l. 423 14.07.19 17:50 Сейчас в теме
(61) не подскажЕте.
не подскажете, вышел новый сборник?

Не подсказывайте ему! Не подскажите ему! Он сам должен знать!
65. mikhailovaew 126 29.05.14 12:41 Сейчас в теме
Не совсем понятно с проблемой копеек:
НоваяЗапись.Сумма = ?(Выборка.КоличествоДокумент = Выборка.КоличествоОстаток, Выборка.СуммаОстаток,
Окр(Выборка.КоличествоДокумент / Выборка.КоличествоОстаток,2) * Выборка.СуммаОстаток);

Зачем мы тут округляем? Платформа сама при записи в регистр сделает округление до точности ресурса. Или тут есть какая-то методологическая тонкость? Поясните, пожалуйста.
66. spetzpozh 24.07.14 23:54 Сейчас в теме
(65) mikhailovaew, округлять не обязательно, проблема копеек в том, что есть требование - при списании всего товара списывать оставшуюся себестоимость. Хотя не очень понятно, как проблема копеек может вылезти при расчете (КоличествоСписываю)/(КоличествоОсталось)*Стоимость. Ну да 1С хочет как в статье.
67. mikhailovaew 126 08.08.14 14:45 Сейчас в теме
(66) spetzpozh, конструкция ?(Выборка.КоличествоДокумент = Выборка.КоличествоОстаток, Выборка.СуммаОстаток, <...ДругаяСуммаРассчитннаяОтКоличества..>) мне понятна, чтобы при выбирании остатка количества выбрать всю оставшуюся сумму.
Мне не понятно, зачем делать именно округление при расчете <...ДругойСуммыРассчитннойОтКоличества..>, оно дальше в расчетах не участвует (не влияет на получение других сумм), а при записи в регистр само округлится.
68. Astrey1C 19.09.14 13:39 Сейчас в теме
Отличная статья. Автору 5+.
69. Tedman 24.10.14 15:58 Сейчас в теме
Есть небольшое замечание в части
Разбитие оклада при многократном изменении его значения внутри периода расчета. Вариант получения разбивки прямо в запросе.

Запрос для разбиения строк документа в зависимости от оклада, как мне кажется, выглядит несколько сложнее.
Исходная задача:
Есть оклад на 31.12.2013 - 10 000. Оклад менялся 10.01 и 20.01.
Начисляем январь: с 01.01 по **.01 запрос отлично отрабатывает. Строка дробится на то количество частей, сколько раз у нас менялся оклад.
А вот если наш сотрудник пил после праздников, и на работу вышел только с 15.01. Тогда ваш запрос выдаст следующее:
Сотрудник	Подразделение	ВидРасчета	Оклад	ПериодДействияНачало	ПериодДействияКонец
Бельдыев	Бухгалтерия	Оклад	12 000	15.01.2014 0:00:00	19.01.2014 23:59:59
Бельдыев	Бухгалтерия	Оклад	10 000	15.01.2014 0:00:00	09.01.2014 23:59:59
Бельдыев	Бухгалтерия	Оклад	15 000	20.01.2014 0:00:00	31.01.2014 23:59:59

А это не правильно... Смысл в том, что использовать СрезПоследних на ДатуРегистрации или на НачалоМесяца(***) нельзя, т.к. совсем не факт, что начисление будет происходить с первого числа месяца, и что оклад не изменится с начала месяца до нашего первого дня начисления, поэтому СрезПоследних надо "симулировать" самим.
Я в итоге родил следующее:
ВЫБРАТЬ
	НачислениеЗарплатыОсновныеНачисления.Сотрудник,
	НачислениеЗарплатыОсновныеНачисления.Подразделение,
	НачислениеЗарплатыОсновныеНачисления.ДатаНачала,
	НачислениеЗарплатыОсновныеНачисления.ДатаОкончания,
	НачислениеЗарплатыОсновныеНачисления.ВидРасчета,
	ЗНАЧЕНИЕ(Справочник.ГрафикиРаботы.Пятидневка) КАК ГрафикРаботы
ПОМЕСТИТЬ втДок
ИЗ
	Документ.НачислениеЗарплаты.ОсновныеНачисления КАК НачислениеЗарплатыОсновныеНачисления
ГДЕ
	НачислениеЗарплатыОсновныеНачисления.Ссылка = &Ссылка
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
	СведенияОСотрудниках.Период,
	СведенияОСотрудниках.Сотрудник,
	СведенияОСотрудниках.Подразделение,
	СведенияОСотрудниках.Оклад,
	втДок.ГрафикРаботы
ПОМЕСТИТЬ Оклады
ИЗ
	втДок КАК втДок
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОСотрудниках КАК СведенияОСотрудниках
		ПО втДок.Сотрудник = СведенияОСотрудниках.Сотрудник
			И втДок.Подразделение = СведенияОСотрудниках.Подразделение
ГДЕ
	втДок.ВидРасчета = ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисления.Оклад)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	втДок.Сотрудник,
	втДок.Подразделение,
	втДок.ДатаНачала,
	втДок.ДатаОкончания,
	МАКСИМУМ(Оклады.Период) КАК Период,
	втДок.ГрафикРаботы
ПОМЕСТИТЬ втДокСПериодомНачОкл
ИЗ
	втДок КАК втДок
		ЛЕВОЕ СОЕДИНЕНИЕ Оклады КАК Оклады
		ПО втДок.Сотрудник = Оклады.Сотрудник
			И втДок.Подразделение = Оклады.Подразделение
			И втДок.ДатаНачала >= Оклады.Период
ГДЕ
	втДок.ВидРасчета = ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисления.Оклад)

СГРУППИРОВАТЬ ПО
	втДок.ДатаНачала,
	втДок.ДатаОкончания,
	втДок.Подразделение,
	втДок.Сотрудник,
	втДок.ГрафикРаботы
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	втДокСПериодомНачОкл.Сотрудник,
	втДокСПериодомНачОкл.Подразделение,
	втДокСПериодомНачОкл.ДатаНачала,
	втДокСПериодомНачОкл.ДатаОкончания,
	втДокСПериодомНачОкл.Период,
	НачОклады.Оклад,
	втДокСПериодомНачОкл.ГрафикРаботы
ПОМЕСТИТЬ втДокСНачОкл
ИЗ
	втДокСПериодомНачОкл КАК втДокСПериодомНачОкл
		ЛЕВОЕ СОЕДИНЕНИЕ Оклады КАК НачОклады
		ПО втДокСПериодомНачОкл.Сотрудник = НачОклады.Сотрудник
			И втДокСПериодомНачОкл.Подразделение = НачОклады.Подразделение
			И втДокСПериодомНачОкл.Период = НачОклады.Период
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	втДокСНачОкл.Сотрудник,
	втДокСНачОкл.Подразделение,
	втДокСНачОкл.ДатаНачала,
	втДокСНачОкл.ДатаОкончания,
	втДокСНачОкл.Период,
	втДокСНачОкл.Оклад КАК Оклад,
	Оклады.Оклад КАК ОкладРазрез,
	Оклады.Период КАК ПериодРазрез,
	втДокСНачОкл.ГрафикРаботы
ПОМЕСТИТЬ втДокПодготовкаКРазбивке
ИЗ
	втДокСНачОкл КАК втДокСНачОкл
		ЛЕВОЕ СОЕДИНЕНИЕ Оклады КАК Оклады
		ПО втДокСНачОкл.Сотрудник = Оклады.Сотрудник
			И втДокСНачОкл.Подразделение = Оклады.Подразделение
			И втДокСНачОкл.ДатаНачала < Оклады.Период
			И втДокСНачОкл.ДатаОкончания > Оклады.Период
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	втДокПодготовкаКРазбивке.Сотрудник,
	втДокПодготовкаКРазбивке.Подразделение,
	втДокПодготовкаКРазбивке.ДатаНачала,
	ДОБАВИТЬКДАТЕ(втДокПодготовкаКРазбивке.ПериодРазрез, ДЕНЬ, -1) КАК ДатаОкончания,
	втДокПодготовкаКРазбивке.Оклад,
	втДокПодготовкаКРазбивке.ГрафикРаботы
ПОМЕСТИТЬ ОкладДанные
ИЗ
	втДокПодготовкаКРазбивке КАК втДокПодготовкаКРазбивке
ГДЕ
	НЕ втДокПодготовкаКРазбивке.ПериодРазрез ЕСТЬ NULL 

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	втДокПодготовкаКРазбивке.Сотрудник,
	втДокПодготовкаКРазбивке.Подразделение,
	втДокПодготовкаКРазбивке.ДатаНачала,
	втДокПодготовкаКРазбивке.ДатаОкончания,
	втДокПодготовкаКРазбивке.Оклад,
	втДокПодготовкаКРазбивке.ГрафикРаботы
ИЗ
	втДокПодготовкаКРазбивке КАК втДокПодготовкаКРазбивке
ГДЕ
	втДокПодготовкаКРазбивке.ПериодРазрез ЕСТЬ NULL 

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	втДокПодготовкаКРазбивке.Сотрудник,
	втДокПодготовкаКРазбивке.Подразделение,
	втДокПодготовкаКРазбивке.ПериодРазрез,
	втДокПодготовкаКРазбивке.ДатаОкончания,
	втДокПодготовкаКРазбивке.ОкладРазрез,
	втДокПодготовкаКРазбивке.ГрафикРаботы
ИЗ
	втДокПодготовкаКРазбивке КАК втДокПодготовкаКРазбивке
ГДЕ
	НЕ втДокПодготовкаКРазбивке.ПериодРазрез ЕСТЬ NULL 
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ОкладДанные.Сотрудник,
	ОкладДанные.Подразделение,
	ОкладДанные.ДатаНачала КАК ДатаНачала,
	ОкладДанные.ДатаОкончания,
	ОкладДанные.Оклад,
	ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисления.Оклад) КАК ВидРасчета,
	ОкладДанные.ГрафикРаботы КАК ГрафикРаботы
ИЗ
	ОкладДанные КАК ОкладДанные

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	втДок.Сотрудник,
	втДок.Подразделение,
	втДок.ДатаНачала,
	втДок.ДатаОкончания,
	NULL,
	втДок.ВидРасчета,
	втДок.ГрафикРаботы
ИЗ
	втДок КАК втДок
ГДЕ
	втДок.ВидРасчета <> ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисления.Оклад)

УПОРЯДОЧИТЬ ПО
	ДатаНачала
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	НачислениеЗарплатыДополнительныеНачисления.Сотрудник,
	НачислениеЗарплатыДополнительныеНачисления.Подразделение,
	НачислениеЗарплатыДополнительныеНачисления.ВидРасчета,
	НачислениеЗарплатыДополнительныеНачисления.ДатаНачала,
	НачислениеЗарплатыДополнительныеНачисления.ДатаОкончания
ПОМЕСТИТЬ ДопНачисления
ИЗ
	Документ.НачислениеЗарплаты.ДополнительныеНачисления КАК НачислениеЗарплатыДополнительныеНачисления
ГДЕ
	НачислениеЗарплатыДополнительныеНачисления.Ссылка = &Ссылка
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ДопНачисления.Сотрудник,
	ДопНачисления.Подразделение,
	ДопНачисления.ВидРасчета,
	ДопНачисления.ДатаНачала,
	ДопНачисления.ДатаОкончания,
	ПремииСотрудникамСрезПоследних.Премия
ИЗ
	ДопНачисления КАК ДопНачисления
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПремииСотрудникам.СрезПоследних(
				&ПериодРегистрации,
				Сотрудник В
					(ВЫБРАТЬ
						ДопНачисления.Сотрудник
					ИЗ
						ДопНачисления)) КАК ПремииСотрудникамСрезПоследних
		ПО ДопНачисления.Сотрудник = ПремииСотрудникамСрезПоследних.Сотрудник
Показать

Не даю 100% гарантии, что это правильно, но работает, вроде, правильно при всех вариантах, которые мне удалось придумать.
Хотелось бы услышать мнение "гуру" уже прошедших лёд и пламя, и имеющих заветную жёлтую бумажку.
70. Isperator 14.02.15 17:06 Сейчас в теме
Ребята, поделитесь впечатлениями и опытом кто ходил сдавать в 2015 году на экзамен. Готовлюсь к экзамену.
71. reg-81 08.03.15 20:23 Сейчас в теме
Первоначальный запрос работает корректно, нужно только условие вместо "МЕЖДУ" поставить ДатаНачала > &ДатаНачала И ДатаОкончания <= &ДатаОкончания
72. temamart 09.04.15 13:37 Сейчас в теме
Проводки = Движения.Управленческий;
Проводки.Записывать = Истина;
Если НЕ Проводки.Модифицированность() И НЕ ЭтоНовый() Тогда
Проводки.Прочитать();
КонецЕсли;

Зачем вот это условие? Проводки же всегда будут модифицированы.
73. avgyr77 10.06.15 20:59 Сейчас в теме
Спасибо автору за труд. идем здавать спеца!
74. wtlz 138 16.06.15 17:37 Сейчас в теме
А вот такой вопрос - как определить при записи набора записей регистра расчета когда надо замещать, а когда нет ? Ну и по ТолькоЗапись такой же вопрос)

РегистрРасчетаНаборЗаписей.<Имя регистра расчета> (CalculationRegisterRecordSet.<Имя регистра расчета>)
Записать (Write)
Синтаксис:
Записать(<Замещать>, <ТолькоЗапись>, <ЗаписьФактическогоПериодаДействия>, <ЗаписьПерерасчетов>)
<Замещать> (необязательный)
Тип: Булево.
Определяет режим замещения существующей записи в соответствии с текущими установками отбора (т.е. по регистратору набора записей). Истина - перед записью существующие записи будут удалены. Ложь - записи будут дописаны к уже существующим в информационной базе записям.
75. DopeDigga 31.07.15 14:07 Сейчас в теме
(74) wtlz, ну судя по необязательности - то если критично и явно требуется или беречь размер ИБ, или, к примеру, иметь возможность запроситься к истории этих изменений, получается истина / ложь соответственно
76. aleksey.kubovtsov 83 26.08.15 12:37 Сейчас в теме
Коллеги , прокомментируйте плиз
на экзамен кучу времени убил на запрос в РМ на разбитие периода
вариант :

ВЫБРАТЬ
	НачислениеЗарплатыОсновныеНачисления.НомерСтроки КАК НомерСтроки,
	НачислениеЗарплатыОсновныеНачисления.Сотрудник,
	НачислениеЗарплатыОсновныеНачисления.ВидРасчета,
	НачислениеЗарплатыОсновныеНачисления.ГрафикРаботы,
	НачислениеЗарплатыОсновныеНачисления.ДатаНачала,
	НачислениеЗарплатыОсновныеНачисления.ДатаОкончания,
	СведенияОСотрудниках.Период,
	СведенияОСотрудниках.Оклад
ПОМЕСТИТЬ ВТ_РазбитеПериода
ИЗ
	Документ.НачислениеЗарплаты.ОсновныеНачисления КАК НачислениеЗарплатыОсновныеНачисления
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОСотрудниках КАК СведенияОСотрудниках
		ПО НачислениеЗарплатыОсновныеНачисления.Сотрудник = СведенияОСотрудниках.Сотрудник
			И НачислениеЗарплатыОсновныеНачисления.ДатаОкончания >= СведенияОСотрудниках.Период
			И НачислениеЗарплатыОсновныеНачисления.ДатаНачала <= СведенияОСотрудниках.Период
ГДЕ
	НачислениеЗарплатыОсновныеНачисления.Ссылка = &Ссылка
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_РазбитеПериода.НомерСтроки,
	ВТ_РазбитеПериода.Сотрудник,
	ВТ_РазбитеПериода.ВидРасчета,
	ВТ_РазбитеПериода.ГрафикРаботы,
	ЕСТЬNULL(ВТ_РазбитеПериода.Период, ВТ_РазбитеПериода.ДатаНачала) КАК ДатаНачала,
	ВТ_РазбитеПериода.ДатаОкончания,
	ЕСТЬNULL(ВТ_РазбитеПериода.Оклад, СведенияОСотрудникахСрезПоследних.Оклад) КАК Размер
ИЗ
	ВТ_РазбитеПериода КАК ВТ_РазбитеПериода
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОСотрудниках.СрезПоследних(
				&КонецПериода,
				Сотрудник В
					(ВЫБРАТЬ РАЗЛИЧНЫЕ
						вт.Сотрудник
					ИЗ
						ВТ_РазбитеПериода КАК вт)) КАК СведенияОСотрудникахСрезПоследних
		ПО ВТ_РазбитеПериода.Сотрудник = СведенияОСотрудникахСрезПоследних.Сотрудник
Показать
77. aleksey.kubovtsov 83 26.08.15 12:54 Сейчас в теме
сори . кривое решение. период конца не верно получается (
78. tsmgeorg@gmail.com 11.09.15 12:52 Сейчас в теме
Спасибо большое! Очень помогает при подготовке.
79. korol-ar 09.12.15 00:13 Сейчас в теме
В п.20. Вроде как в 2-х местах надо график в набор добавлять?

Процедура ЗаполнитьГрафик(ДатаНачала, ДатаОкончания, ВыходныеДни, ГрафикРаботы) Экспорт 

Набор = РегистрыСведений.ГрафикиРаботы.СоздатьНаборЗаписей();
Набор.Отбор.ГрафикРаботы.Установить(ГрафикРаботы); // 1. ДОБАВЛЯЕМ ОТБОР ПО ГРАФИКУ
//Набор.Прочитать(); // 2. КОММЕНТИРУЕМ ЧТЕНИЕ НАБОРА

ЧислоСекундВСутках = 86400;

Дат = ДатаНачала;
Для к = 0 По Набор.Количество()-1 Цикл

Запись = Набор[к];
Если Запись.Дата < ДатаНачала Тогда
    Продолжить;
ИначеЕсли Запись.Дата =Дат Тогда
Если Найти(ВыходныеДни, Строка(ДеньНедели(Дат))) Тогда
Запись.Значение = 0;
Иначе          
Запись.Значение = 8;
КонецЕсли;
Дат = Дат + ЧислоСекундВСутках;
Иначе
Пока Дат < Мин(Запись.Дата, ДатаОкончания) Цикл
НоваяЗапись = Набор.Добавить();
//+++korol-ar:
НоваяЗапись .ГрафикРаботы = ГрафикРаботы; // 3. вот здесь еще ВСТАВЛЯЕМ НУЖНЫЙ ГРАФИК 
//---korol-ar.
НоваяЗапись.Дата = Дат;
Если Найти(ВыходныеДни, Строка(ДеньНедели(Дат))) Тогда
НоваяЗапись.Значение = 0;
Иначе          
НоваяЗапись.Значение = 8;
КонецЕсли; 
Дат = Дат + ЧислоСекундВСутках;
КонецЦикла; 
Если Запись.Дата > ДатаОкончания Тогда
Прервать;
Иначе
Если Найти(ВыходныеДни, Строка(ДеньНедели(Дат))) Тогда
Запись.Значение = 0;
Иначе          
Запись.Значение = 8;
КонецЕсли;
КонецЕсли;
Дат = Дат + ЧислоСекундВСутках;
КонецЕсли; 
КонецЦикла;
Набор.Записать();

Пока Дат <= ДатаОкончания Цикл
Запись = Набор.Добавить();
Запись.ГрафикРаботы = ГрафикРаботы; // 3. ВСТАВЛЯЕМ НУЖНЫЙ ГРАФИК
Запись.Дата = Дат;
Если Найти(ВыходныеДни, Строка(ДеньНедели(Дат))) Тогда
Запись.Значение = 0;
Иначе          
Запись.Значение = 8;
КонецЕсли; 
Дат = Дат + ЧислоСекундВСутках;
КонецЦикла; 
Набор.Записать();

КонецПроцедуры
Показать
82. CSiER 29 19.03.16 19:22 Сейчас в теме
(79) korol-ar, автор как раз говорит о том, что править график на экзамене скорее всего не придется - поэтому и комментирует строку "Набор.Прочитать()" (Ваш код не выполнится - "Набор.Количество()" = 0 ).
80. Sibiryak 06.01.16 17:45 Сейчас в теме
Для каждого Строка Из СписокНоменклатуры Цикл
Запись = Движения.ТоварыНаСкладах.ДобавитьРасход();
Запись.Период = Дата;
Запись.Номенклатура = Строка.Номенклатура;
Запись.Склад = Склад;
Запись.Количество = Строка.Количество;
КонецЦикла;

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

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

Здесь можно проиндексировать поле "Номенклатура", т.к. в следующем запросе пакета идет поиск по этому полю этой временной таблицы.

Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Количество() Тогда
Отказ = Истина;
КонецЕсли;

Возможно, правильнее сделать так:
РезультатЗапроса = Запрос.Выполнить();
Если НЕ РезультатЗапроса.Пустой() Тогда		
	Отказ = Истина; 
КонецЕсли;
81. Sibiryak 06.01.16 18:13 Сейчас в теме
НоваяЗапись.Сумма = ?(Выборка.КоличествоДокумент = Выборка.КоличествоОстаток, Выборка.СуммаОстаток, 
 Окр(Выборка.КоличествоДокумент / Выборка.КоличествоОстаток,2) * Выборка.СуммаОстаток);

Почему округление с точностью до 2-х, а не до 3-х, например?
83. timeforlive 11 21.04.16 14:00 Сейчас в теме
85. pyrkin_vanya 362 16.04.17 15:36 Сейчас в теме
Автор, вопрос про проблему копеек.
НоваяЗапись.Сумма = ?(Выборка.КоличествоДокумент = Выборка.КоличествоОстаток, Выборка.СуммаОстаток, 
 Окр(Выборка.КоличествоДокумент / Выборка.КоличествоОстаток,2) * Выборка.СуммаОстаток); 


У меня ситуация.
КоличествоСписания = 1;
КоличествоОстаток = 3;
СуммаОстаток = 300;

Прописал Вашу формулу и получается следующее:
Окр(1 / 3, 2) * 300
0,33 * 300 = 99.
Видно же, что явная ошибка. Должно быть 100.
Почему такая странная формула для расчету суммы списания?
86. talych 16 26.06.17 22:45 Сейчас в теме
(85)
Списать = Мин(ОсталосьСписать, ВыборкаДетальные.КоличествоОстаток);

СуммаСписания = ?(Списать = ВыборкаДетальные.КоличествоОстаток, ВыборкаДетальные.СтоимостьОстаток,
ВыборкаДетальные.СтоимостьОстаток/ВыборкаДетальные.КоличествоОстаток * Списать);

Еще вопрос. А с тех пор методика блокировок уже изменилась?
87. user913680 42 08.03.18 20:44 Сейчас в теме
Из всего что видел ранее 9и прежде всего на этом сайте) - данная статья пока наиболее содержательная и полезная (все существенные моменты в одном месте). Но как всегда - четкий ответ вопрос когда использовать новую методику, а когда старую - замыливается.
88. Videon 04.10.18 16:26 Сейчас в теме
(87)
Нашёл такой совет: "«Новый» метод контроля остатков использовать там, где не нужно рассчитывать себестоимость при проведении (она плановая или расчет в конце периода)".
89. Videon 04.10.18 16:37 Сейчас в теме
С округлением в 7-м пункте такая хрень, что сил нет.
При примере 1/3 * 10 получится, что первые товары спишутся по 33, а последний по 34.
Хотя вполне можно сделать не такую большую разницу (2* 33,33 и 1* 33,34).

Окр(Выборка.КоличествоДокумент / Выборка.КоличествоОстаток * Выборка.СуммаОстаток), 2)
Скорее так получше будет, но смысл теряется, ибо тип СуммаОстаток (число) подразумевает 2 знака, после запятой...
90. Videon 22.11.18 13:34 Сейчас в теме
(89) И ещё к этому пункту замечание.
там, наверное, не Выборка.КоличествоДокумент = Выборка.КоличествоОстаток должно быть, а
Выборка.КоличествоДокумент >= Выборка.КоличествоОстаток ...
92. irakuzaul 12.03.20 21:21 Сейчас в теме
Если Вам нужно по каждой задаче написать по 4 страницы кода, то Вы не успеете, это точно. Минут 25-30, как минимум, для каждой задачи уходит только на то, чтобы вниктуть в суть задачи и сделать настройку метаданных. Задачи не из сборника, вернее из сборника, но в одной задаче могут переплестись условия из 2-х разных задач, или добалено доп. условие (например, сделать новый документ). Так что если работататель готов Вам платить хорошую зарплату без сертификата, лучше не тратьте деньги. Экзамен-то платный, и за курсы еще нужно заплатить. Интересно, сколько автор стать потратил, чтобы просто откопировать код и вставить его в статью? Наверное, часов 5 точно.
Оставьте свое сообщение

См. также

Отчеты ЗУП. Решения всех отчетов из сборника задач для подготовки к Специалист-консультант ЗУП с картинками

Статья Бухгалтер Стажер Нет файла v8 v8::СПР ЗУП3.x Россия БУ Зарплата Управление персоналом (HRM) Бесплатно (free) Решение задач на 1С:Специалист

Когда готовился к сдаче экзамена на Специалист консультант по ЗУП, в процессе решения задач из сборника обнаружил, что те решения отчетов, которые есть в сети и на Инфостарте, недостаточно проиллюстрированы, и для новичка это может быть довольно тяжело и затратно по времени - разобраться, что к чему, с "нуля". Делал как шпаргалку для себя. Экзамен сдал на отлично. Рекомендую тем, кто готовится - прорешать все отчеты.

26.08.2019    8513    user1024932    19       

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Как сдать тест 1С:Профессионал по платформе (в 2019 г.). Мой опыт

Статья Стажер Нет файла v8 Россия Бесплатно (free) Решение задач на 1С:Специалист

Мой опыт успешной сдачи теста 1С:Профессионал по платформе с первой попытки.

26.08.2019    13602    user1211995    35       

Анти-оптимизация: как мы ускорили запрос в 4 раза, сделав его неоптимальным

Статья Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad) Практика программирования Решение задач на 1С:Специалист Разработка

В этой статье приведен пример неочевидной "оптимизации" запроса, которая противоречит всем правилам, описанным в книгах для подготовки к сертификации "1С:Эксперт по технологическим вопросам", а также преподаваемым на курсах подготовки экспертов.

02.07.2019    8750    igordynets    119       

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

1С УТ 11. Доработка типовых отчетов – пересчет показателей в произвольную валюту. Задачи 2.1 – 2.2 сборника «1С: Специалист»

Статья Программист Нет файла v8 УТ11 Бесплатно (free) Решение задач на 1С:Специалист

В сборнике задач для подготовки к экзамену «1С: Специалист» по конфигурированию и внедрению 1С: Управление торговлей 11 имеются задачи по доработке типовых отчетов, связанных пересчетом показателей в выбранную валюту на выбранную дату. В статье предлагается альтернативный способ решения, использующий возможности СКД без изменения типового текста запроса. Подход может применяться как при решении экзаменационных задач, так и на практике при доработках типовых отчетов, связанных с пересчетом валют.

16.04.2019    3557    Sergey1CSpb    0       

Задача 1.13 1С:Специалист - запрос для отчета по стеллажам

Статья Программист Нет файла v8::ОУ Россия Бесплатно (free) Практика программирования Решение задач на 1С:Специалист

Описание подводных каменей отчета по стеллажам (задача 1.13 1С:Специалист) и способов их преодоления.

24.12.2018    5800    user913680    1       

Онлайн-курс «Практические аспекты внедрения регламентированного учета и расчета себестоимости в 1С:ERP на крупных промышленных предприятиях» с 20 апреля по 15 мая 2020 года. Промо

Курс рассчитан для подготовки экспертов по регламентированному учету и учету затрат для внедрения на крупных промышленных предприятиях с «исторически сложившимся» учетом

9000 рублей

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

В помощь готовящимся к экзамену 1С:Эксперт по технологическим вопросам

Статья Системный администратор Программист Нет файла v8 Россия Бесплатно (free) Решение задач на 1С:Специалист

Краткий рассказ о подготовке к экзамену 1С:Эксперт по технологическим вопросам, на что стоит обратить внимание, список литературы и Интернет-источников.

26.12.2017    22197    geron4    34       

Как я сдал экзамен 1С:Эксперт по технологическим вопросам

Статья Программист Нет файла v8 Россия Бесплатно (free) Решение задач на 1С:Специалист

Касательно содержания предметной области, с которой работает 1С:Эксперт, с точки зрения обычного 1С-ника, это, возможно, выглядит как некие "дебри". Но с точки зрения эксплуатации крупной системы - это никакие не "дебри", а такая же ежедневная привычная работа, как оборотно-сальдовая ведомость в 1С:Бухгалтерии.

17.07.2017    29279    ilya_petrov    79       

1C:Предприятие для программистов: Расчетные задачи (зарплата). Онлайн-интенсив с 01 по 17 июня 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, которые предназначены для автоматизации периодических расчетов, а именно - для расчета зарплаты. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей прикладного решения “1С:Зарплата и управление персоналом” и прочих прикладных решений, в которых реализован функционал расчета зарплаты.

4900 рублей

Как я доступ на kb.1c.ru получал

Статья Программист Нет файла v8 Россия Бесплатно (free) Решение задач на 1С:Специалист Математика и алгоритмы

kb.1c - база знаний по технологическим вопросам крупных внедрений и не только. В этой базе знаний собираются методики и решения технологических проблем эксплуатации 1с, check-list'ы и инструкции по настройке ПО на серверах. Какие-то из размещенных статей дублируются на ИТС. Когда я искал пути получения доступа к нему я столкнулся с проблемой: мало кто доподлинно знает как получить доступ к нему, не работая у франчайзи 1с. Я опишу путь, который прошёл я, как физическое лицо.

01.05.2017    24346    ikekoval    34       

Экзамен 1С:Специалист по платформе 8.3. Полностью решенные ВСЕ билеты экзамена (актуальны на март 2020 г.). Последние требования к экзамену. Описание интерфейса сдачи экзамена 1С:Гуру.

Отчеты и формы Программист Стажер Архив с данными v8 Абонемент ($m) Решение задач на 1С:Специалист

Хотел бы познакомить Вас с последними требованиями на экзамене «1С:Специалист по платформе 8.3», полностью решенными билетами экзамена (ВСЕ 16 БИЛЕТОВ ЭКЗАМЕНА + Новые дополнительные задачи) с учетом последних нововведений в заданиях экзамена, а также рассказать об удобным интерфейсе сдачи экзамена 1С:Гуру.

1 стартмани

18.07.2016    105774    4248    PoZiTiFFF    255       

Базовый курс для начинающих 1С-программистов. Онлайн-интенсив со 2 июня по 2 июля 2020 г. Промо

Данный онлайн-курс является начальной ступенью по изучению базовых принципов программирования в системе “1С:Предприятие” и предназначен для обучения 1С-программированию “с нуля”.

4500-9500 рублей

1С:Специалист по платформе. Система подготовки к экзамену. Личное мнение (C)

Статья Программист Нет файла v8 Бесплатно (free) Решение задач на 1С:Специалист

Существует немало статей на тему сдачи экзамена 1С:Специалист по платформе с разным содержанием: решенные билеты, советы и рекомендации по решению отдельных блоков задач, шаблоны для решения задач и т.д. В данной статье наш коллега поделился СИСТЕМОЙ подготовки к экзамену. В статье не найдете решений на отдельно взятые задачи или темы, а лишь МЕТОДИКУ отдельно взятого специалиста, которая принесла результат. Как нам кажется, данная методика показательна и будет полезна коллегам по цеху. Повествование будет от первого лица.

07.12.2015    40964    1Concept    21       

ЗУП 3.0 Специалист. Билет 4.

Статья Программист Нет файла v8 v8::СПР ЗУП3.x Россия БУ Windows Зарплата Бесплатно (free) Решение задач на 1С:Специалист

Пример решения 4-го билета для экзамена на специалиста по ЗУП 3.0. В публикации представлено собственное решение.

25.10.2015    16994    maxdmt    9       

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

Методика решения задач 4,5 к экзамену 1С:Специалист. Бухгалтерия 8

Статья Программист Нет файла v8 БП2.0 БУ Windows Бесплатно (free) Решение задач на 1С:Специалист

В публикации: http://infostart.ru/public/186788/ подробно расписаны методики решения задач: 1(24,25,26), 2(27,28,29), 3(30,31,32). Но задачи 4 (ШУБЫ) и 5 (Производство) имеют немного другую постановку и методики решения этих задач, хоть и сильно помогают при подготовке, но не совсем подходят. Очень советую посмотреть видео решения по билетам: http://www.youtube.com/channel/UCU--LZhWkjtidF4UhbS2tAw/videos Готовился по редакции 3.0.18.9.

02.04.2015    15838    Ekovichev    1       

Решения задачи номер 1.13, 1.14 по сборнику для подготовки к экзамену 1С специалист-консультант по внедрению прикладного решения УТ 11 (май 2013).

Статья no Нет файла v8 УТ10 Windows Бесплатно (free) Решение задач на 1С:Специалист

Подробные решения задач со скриншотами из сборника для подготовки к экзамену 1С специалист-консультант по УТ 11 (май 2013). Занимаюсь подготовкой к экзамену. Решил выложить решения некоторых задач. Приведены решения задач номер 1.13, 1.14. Решение каждой задачи реализовано в пустой базе. Статья не содержит условия самих задач, а только авторские решения задач с указанием номера задачи. Критика и указания ошибок в решении приветствуется. Смотрите так же решения других задач: 1.15 и 1.16 http://infostart.ru/public/305689/

23.10.2014    15505    Dima982    2       

Онлайн-курс "Подготовка к экзамену 1С:Эксперт и 1С:Профессионал по технологическим вопросам" с 7 по 24 апреля 2020 г. Промо

На курсе вы получите практические навыки решения задач производительности 1С, в том числе характерных для высоконагруженных информационных систем (более 1000 пользователей). Подготовка к экзамену – только одна из составляющих курса. 70% слушателей приходят за знаниями, которые позволят расти и зарабатывать, делать сложные задачи на крупных проектах.

16450 рублей

Специалист-консультант, УТ 11, решения задач по сборнику для подготовки к экзамену 1С специалист-консультант по внедрению прикладного решения УТ 11 (май 2013).

Статья Программист Нет файла v8 УТ10 Россия Windows Бесплатно (free) Решение задач на 1С:Специалист

Подробные решения задач со скриншотами из сборника для подготовки к экзамену 1С специалист-консультант по УТ 11 (май 2013). Занимаюсь подготовкой к экзамену. Решил выложить решения некоторых задач. Приведены решения задач номер 1.15, 1.16. Решение каждой задачи реализовано в пустой базе. Статья не содержит условия самих задач, а только авторские решения задач с указанием номера задачи. Критика и указания ошибок в решении приветствуется.

06.10.2014    19565    Dima982    1       

Экзамен "1С:Специалист" по платформе 8.3 - заметки для успешной сдачи (обновлено 20.08.2014)

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Решение задач на 1С:Специалист

Совсем недавно сдал экзамен "1С:Специалист" по платформе 8.3. Экзамен сдал с первого раза. Готовился где-то полгода, за это время изучил много информации по экзамену и прорешал около 100 задач из сборника. В процессе подготовки для себя создал много небольших заметок с готовыми кусками кода для решения определенных подзадач, а также краткими пояснениями сложных моментов. Хочу поделиться этим материалом с людьми, которые сейчас готовятся к сдаче, это должно им очень помочь.

15.07.2014    129798    hame1e00n    97       

Новый раздел на Инфостарте - Electronic Software Distribution Промо

Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.

  • Низкие цены, без скрытых платежей и наценок
  • Оперативная отгрузка
  • Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
  • Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)

Сервис для изучения методов платформы 1С:Предприятие 8. Бесплатно!

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Решение задач на 1С:Специалист Математика и алгоритмы

Бесплатный ON-Line сервис изучения методов платформы 1С:Предприятие 8. Подготовка к аттестации 1С:Специалист on-line! Тестовые задания по различным видам учета! Подсказки для оптимального решения!

27.06.2013    48132    bpc222    51       

1С:Специалист по УПП. Рекомендации по правильной подготовке и сдаче

Статья Программист Нет файла v8 УПП1 Россия Windows Бесплатно (free) Решение задач на 1С:Специалист

Успешно пройдена очередная аттестация от 1С. Какие же, на мой взгляд, рекомендации можно дать тем, кто еще готовится к этому важному событию. На что нужно обратить особое внимание при подготовке.

06.06.2013    38906    kondrp    33       

DevOps для 1С. Онлайн-курс проходит с 16 апреля по 11 июня 2020 года. Промо

Данный онлайн-курс предусматривает изучение процессов DevOps, их применение при разработке на платформе 1С. В результате прохождения онлайн-курса вы сможете: настроить ПО необходимое для проведения проверок и тестирования, создавать сценарии тестирования и объединять их в комплексные процессы, создавать скрипты для автоматизации процессов DevOps.

12000 рублей

Самоучитель языка запросов 1С.

Статья Системный администратор Программист Нет файла v8 v8::Запросы Бесплатно (free) Практика программирования Решение задач на 1С:Специалист Математика и алгоритмы

Сервис для изучения запросов 1С: "Консоль изучения запросов 1С:Предприятие 8". Теперь и с конструктором запросов!

07.05.2013    105993    bpc222    327       

1C: Профессионал. Хороший? Плохой? Быстрый!

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Решение задач на 1С:Специалист

Ни для кого не секрет, что успех сдачи экзамена 1С: Профессионал зависит от быстрого запоминания ответов. В этой статье я кратко опишу методы своей подготовки, которые позволят вам более эффективно подготовиться к сдаче экзамена. В подтверждение моих слов, добавлю, эти методы помогли мне получить 6 сертификатов 1С: Профессионал.

24.09.2012    24207    mrdug    24       

Онлайн-интенсив "1C:Предприятие для программистов: Бухгалтерские задачи" с 22 июня по 8 июля 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, которые предназначены для решения задач бухгалтерского учета. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей прикладного решения “1С:Бухгалтерия” и прочих прикладных решений, в которых реализованы соответствующие механизмы для автоматизации бухгалтерских задач.

4900 рублей

Сортировка метаданных с учетом префиксов

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Решение задач на 1С:Специалист

При подготовке конфигурации на 1С:Совместимо имеется такое требование, чтобы объекты метаданных были отсортированы по алфавиту, при этом для новых объектов должны быть добавлены префиксы и в дереве метаданных они должны находится в конце. Для решения данной задачи или просто для организации подобной сортировки пришла следующая простая идея.

18.09.2012    8624    Mavin    5       

1С:Специалист по платформе 8.2. Рекомендации по правильной подготовке и сдаче

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Решение задач на 1С:Специалист

Только только вернулся со сдачи аттестации 1С:Специалист по платформе 8.2. Можете меня поздравить, теперь одним сертифицированным специалистом стало больше. В связи с этим хотел бы поделиться своими впечатлениями и опытом.

06.08.2012    83452    kondrp    26       

Время учиться: до 3 апреля скидки на курсы до 40%! Промо

Для тех, кто решил провести самоизоляцию с пользой, Инфостарт запускает акцию «Время учиться». С 30 марта до 3 апреля 2020 года наши курсы и видеозаписи докладов INFOSTART EVENT 2019 INCEPTION продаются со скидкой!

Работа с управляемыми блокировками в примерах. Новая схема проведения документов 1с 8.2.

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Решение задач на 1С:Специалист

Много информации есть на тему работы с управляемыми блокировками в 1С 8.2. Но так, как я не нашел статьи, написанной в простых и понятных примерах, то решил написать свою статью. Она будет полезна тем, кто все еще не до конца понимает принципы работы управляемых блокировок и то, чем отличаются блокировки новой схемы проведения от старой.

24.07.2012    131877    Invaa    44