в Зарплата и управление персоналом КОРП, редакция 3.1 (3.1.2.105) есть документ
НачислениеЗарплаты. в нем есть табличная часть Начисление. в ней НЕ пишутся два поля ДатаНачала и ДатаОкончание.

```1c
    iikoДанные = Новый ТаблицаЗначений;

    iikoДанные.Колонки.Добавить("Должность",Новый ОписаниеТипов("Строка"));
    iikoДанные.Колонки.Добавить("Сотрудник",Новый ОписаниеТипов("Строка"));
    iikoДанные.Колонки.Добавить("ТабельныйНомер",Новый ОписаниеТипов("Строка"));
    iikoДанные.Колонки.Добавить("ОстатокНаНачало",Новый ОписаниеТипов("Число"),Новый КвалификаторыЧисла(15,2));
    iikoДанные.Колонки.Добавить("Оклад",Новый ОписаниеТипов("Число"),Новый КвалификаторыЧисла(15,2));
    iikoДанные.Колонки.Добавить("Аванс",Новый ОписаниеТипов("Число"),Новый КвалификаторыЧисла(15,2));
    iikoДанные.Колонки.Добавить("ОтработаноЧасов",Новый ОписаниеТипов("Строка"));
    iikoДанные.Колонки.Добавить("ПоврОплата",Новый ОписаниеТипов("Число"),Новый КвалификаторыЧисла(15,2));
    iikoДанные.Колонки.Добавить("ПродажиБлюда",Новый ОписаниеТипов("Число"),Новый КвалификаторыЧисла(15,2));
    iikoДанные.Колонки.Добавить("ПродажиЗаказы",Новый ОписаниеТипов("Число"),Новый КвалификаторыЧисла(15,2));
    iikoДанные.Колонки.Добавить("Бонусы",Новый ОписаниеТипов("Число"),Новый КвалификаторыЧисла(15,2));
    iikoДанные.Колонки.Добавить("Начислено",Новый ОписаниеТипов("Число"),Новый КвалификаторыЧисла(15,2));
    iikoДанные.Колонки.Добавить("Недостача",Новый ОписаниеТипов("Число"),Новый КвалификаторыЧисла(15,2));
    iikoДанные.Колонки.Добавить("Удержания",Новый ОписаниеТипов("Число"),Новый КвалификаторыЧисла(15,2));
    iikoДанные.Колонки.Добавить("ПрНачисления",Новый ОписаниеТипов("Число"),Новый КвалификаторыЧисла(15,2));
    iikoДанные.Колонки.Добавить("ЕдаНезакрСтолы",Новый ОписаниеТипов("Число"),Новый КвалификаторыЧисла(15,2));
    iikoДанные.Колонки.Добавить("ПрочиеРасчеты",Новый ОписаниеТипов("Число"),Новый КвалификаторыЧисла(15,2));
    iikoДанные.Колонки.Добавить("Итого",Новый ОписаниеТипов("Число"),Новый КвалификаторыЧисла(15,2));
    iikoДанные.Колонки.Добавить("ВыданныеАвансы",Новый ОписаниеТипов("Число"),Новый КвалификаторыЧисла(15,2));
    iikoДанные.Колонки.Добавить("ОбщиеВыплаты",Новый ОписаниеТипов("Число"),Новый КвалификаторыЧисла(15,2));
    iikoДанные.Колонки.Добавить("КВыдаче",Новый ОписаниеТипов("Число"),Новый КвалификаторыЧисла(15,2));
    iikoДанные.Колонки.Добавить("ОстатокНаКонец",Новый ОписаниеТипов("Число"),Новый КвалификаторыЧисла(15,2));
    iikoДанные.Колонки.Добавить("СуммаНачислений",Новый ОписаниеТипов("Число"),Новый КвалификаторыЧисла(15,2));
    iikoДанные.Колонки.Добавить("СуммаУдержаний",Новый ОписаниеТипов("Число"),Новый КвалификаторыЧисла(15,2));

    ЗаписыватьОбъект = истина;

    СформироватьСтруктуруКолонок();

    МетаданныеИсточника = ПолучитьМетаданныеИсточника();

    Колонки = Объект.ДополнительныеСвойства.Колонки;

    ТекстВопросаИсточника = ПолучитьТекстВопросаИсточника().ТекстВопроса;
    КоличествоЭлементов = ТабличныйДокумент.ВысотаТаблицы - Объект.ПерваяСтрокаДанныхТабличногоДокумента + 1;

    Сообщить("Выполняется загрузка"+ ТекстВопросаИсточника, СтатусСообщения.Информация);
    Сообщить("Всего: " + КоличествоЭлементов, СтатусСообщения.Информация);
    Сообщить("---------------------------------------------", СтатусСообщения.БезСтатуса);
    НомерТекущейСтроки = 0;
    Загружено = 0;
    Для К = Объект.ПерваяСтрокаДанныхТабличногоДокумента По ТабличныйДокумент.ВысотаТаблицы Цикл
    НомерТекущейСтроки = НомерТекущейСтроки + 1;
    ТекстыЯчеек = Неопределено;
    Отказ = Ложь;

    ТекущаяСтрока = ПроектКонтрольЗаполненияСтроки(ТабличныйДокумент, К, ТекстыЯчеек);

    //1)Получить должность
    //2)Записать в переменную
    Если ЗначениеЗаполнено(ТекущаяСтрока[1]) Тогда
    Должность = ТекущаяСтрока[1];
    Иначе
    НоваяСтрока = iikoДанные.Добавить();
    НоваяСтрока.Должность = Должность;
    НоваяСтрока.Сотрудник = ТекущаяСтрока[2];
    НоваяСтрока.ТабельныйНомер = ТекущаяСтрока[3];
    НоваяСтрока.ОстатокНаНачало = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(ТекущаяСтрока[4]);
    НоваяСтрока.Оклад = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(ТекущаяСтрока[5]);
    НоваяСтрока.Аванс = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(ТекущаяСтрока[6]);
    НоваяСтрока.ОтработаноЧасов = ТекущаяСтрока[7];
    НоваяСтрока.ПоврОплата = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(ТекущаяСтрока[9]);
    НоваяСтрока.ПродажиБлюда = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(ТекущаяСтрока[10]);
    НоваяСтрока.ПродажиЗаказы = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(ТекущаяСтрока[11]);
    НоваяСтрока.Бонусы = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(ТекущаяСтрока[12]);
    НоваяСтрока.Начислено = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(ТекущаяСтрока[13]);
    НоваяСтрока.Недостача = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(ТекущаяСтрока[14]);
    НоваяСтрока.Удержания = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(ТекущаяСтрока[15]);
    НоваяСтрока.ПрНачисления = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(ТекущаяСтрока[16]);
    НоваяСтрока.ЕдаНезакрСтолы = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(ТекущаяСтрока[17]);
    НоваяСтрока.ПрочиеРасчеты = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(ТекущаяСтрока[18]);
    НоваяСтрока.Итого = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(ТекущаяСтрока[19]);
    НоваяСтрока.ВыданныеАвансы = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(ТекущаяСтрока[20]);
    НоваяСтрока.ОбщиеВыплаты = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(ТекущаяСтрока[21]);
    НоваяСтрока.КВыдаче = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(ТекущаяСтрока[22]);
    НоваяСтрока.ОстатокНаКонец = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(ТекущаяСтрока[23]);
    КонецЕсли;

    КонецЦикла;

    //очищаем таблицу от лишних строк
    НулевыеСтроки = iikoДанные.НайтиСтроки(Новый Структура("Сотрудник","));
    Для каждого СтрокаТаблицы Из НулевыеСтроки Цикл
    iikoДанные.Удалить(СтрокаТаблицы);
    КонецЦикла;

    //находим сумму начислений по колонкам Бонусы, Начислено, ПрНачисления
    Для Каждого ТСтрока ИЗ iikoДанные Цикл
    ТСтрока.СуммаНачислений = ТСтрока.Бонусы + ТСтрока.Начислено + ТСтрока.ПрНачисления;
    КонецЦикла;

    //находим сумму удержаний по колонкам Удержания, Еда/НезакрытыеСтолы
    Для Каждого ТекСтрока ИЗ iikoДанные Цикл
    ТекСтрока.СуммаУдержаний = ТекСтрока.Удержания + ТекСтрока.ЕдаНезакрСтолы;
    КонецЦикла;

    НачислениеЗарплаты = Документы.НачислениеЗарплаты.СоздатьДокумент();

    ЗаполнитьЗначенияСвойств(НачислениеЗарплаты,ДанныеФормы);

    Для Каждого ТЭлемент ИЗ iikoДанные Цикл

    //ищем сотрудника в справочнике
    ФИОМассив = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ТЭлемент.Сотрудник," ",,);
    //если нет то заводим
    Если ПустаяСтрока(Справочники.Сотрудники.НайтиПоНаименованию(ФИОМассив[0])) Тогда

    //создаем справочник физические лица
    ФизЛицо = Справочники.ФизическиеЛица.СоздатьЭлемент();

    ФизЛицо.УстановитьСсылкуНового(Справочники.ФизическиеЛица.ПолучитьСсылку(Новый УникальныйИдентификатор()));
    ФизЛицо.ФИО = ТЭлемент.Сотрудник;
    ФизЛицо.НаименованиеСлужебное = ТЭлемент.Сотрудник;
    ФизЛицо.Наименование = ТЭлемент.Сотрудник;

    ФизЛицо.Фамилия = ФИОМассив[0];
    ФизЛицо.Имя = ФИОМассив[1];
    Если ФИОМассив.Количество() = 2 Тогда
    //отчества нет
    КонецЕсли;
    Если ФИОМассив.Количество() = 3 Тогда
    ФизЛицо.Отчество = ФИОМассив[2];
    КонецЕсли;

    СсылкаФизЛицо = ФизЛицо.ПолучитьСсылкуНового();

    // Добавление записей в периодический независимый регистр сведений
    НаборЗаписей = РегистрыСведений.ФИОФизическихЛиц.СоздатьНаборЗаписей();

    НаборЗаписей.Отбор.ФизическоеЛицо.Установить(СсылкаФизЛицо);

    НовЗапись = НаборЗаписей.Добавить();

    НовЗапись.Период = ТекущаяДата();
    НовЗапись.ФизическоеЛицо = СсылкаФизЛицо;
    НовЗапись.Фамилия = ФИОМассив[0];
    НовЗапись.Имя = ФИОМассив[1];
    Если ФИОМассив.Количество() = 2 Тогда
    //отчества нет
    КонецЕсли;
    Если ФИОМассив.Количество() = 3 Тогда
    НовЗапись.Отчество = ФИОМассив[2];
    КонецЕсли;

    НаборЗаписей.Записать(Истина);

    ФизЛицо.Записать();

    //создаем запись справочника сотрудники
    Сотрудник = Справочники.Сотрудники.СоздатьЭлемент();

    Сотрудник.Наименование = ТЭлемент.Сотрудник;
    Сотрудник.ГоловнойСотрудник = ТЭлемент.Сотрудник;
    Сотрудник.ФизическоеЛицо = СсылкаФизЛицо;

    Сотрудник.Записать();

    КонецЕсли;

    //записываем начисления
    //заполнение табличной части Начисления
    Если ТЭлемент.СуммаНачислений > 0 Тогда

    тчНачисления = НачислениеЗарплаты.Начисления.Добавить();

    тчНачисления.Сотрудник = Справочники.Сотрудники.НайтиПоНаименованию(ФИОМассив[0]);
    тчНачисления.Начисление = ПланыВидовРасчета.Начисления.НайтиПоКоду("ПРНиВ");
    тчНачисления.Результат = ТЭлемент.СуммаНачислений;
    тчНачисления.Подразделение = ДанныеФормы.Подразделение;
    //эти даты не пишутся
    тчНачисления.ДатаНачала = '20170201';
    тчначисления.ДатаОкончания = '20170228';
    //эти даты не пишутся
    тчначисления.ПериодДействия = НачалоМесяца(ДанныеФормы.МесяцНачисления);
    КонецЕсли;

    //записываем удержания
    //Заполнение табличной части Удержания
    Если ТЭлемент.СуммаУдержаний <> 0 Тогда
    тчУдержания = НачислениеЗарплаты.Удержания.Добавить();
    тчУдержания.Сотрудник = Справочники.Сотрудники.НайтиПоНаименованию(ФИОМассив[0]);
    тчУдержания.ФизическоеЛицо = Справочники.ФизическиеЛица.НайтиПоНаименованию(ФИОМассив[0]);
    //тут тоже должны быть даты
    тчУдержания.Результат = ТЭлемент.СуммаУдержаний * (-1);
    тчУдержания.Удержание = ПланыВидовРасчета.Удержания.НайтиПоКоду("ИСПДК");
    КонецЕсли;
    КонецЦикла;

    НачислениеЗарплаты.Записать();

    Сообщить("---------------------------------------------", СтатусСообщения.БезСтатуса);
```
---
и что? Если Вы это делали, то в отладке перед Загрузить() смотрели типы колонок в ТЗ и в ТЧ? Значения колонок смотрели?
Как Вы определяете, что "не записалось"? Через форму документа? А Вы уверены, что всё верно заполнили? Реквизиты могут быть скрыты или очищены, если программа в зависимости от настроек другими реквизитами посчитает, что так надо.
А когда Вы заполняете программно, контроль со стороны формы вообще отсутствует! (внезапно!)
---
тчНачисления.ДатаНачала = '20170201';
            тчначисления.ДатаОкончания = '20170228';

странно Вы дату "пишете".
---
не понял. что не так?
---
как её по Вашему надо писать?
---
```1c
    тчНачисления.ДатаНачала = НачалоМесяца(ДанныеФормы.МесяцНачисления);
    тчначисления.ДатаОкончания = КонецМесяца(ДанныеФормы.МесяцНачисления);
    //эти даты не пишутся
    тчначисления.ПериодДействия = НачалоМесяца(ДанныеФормы.МесяцНачисления);
```
---
это тоже не работает
---
ещё точнее
эта строка пишется

```1c
    тчначисления.ПериодДействия = НачалоМесяца(ДанныеФормы.МесяцНачисления);
```

эти две нет

```1c
    тчНачисления.ДатаНачала = НачалоМесяца(ДанныеФормы.МесяцНачисления);
    тчначисления.ДатаОкончания = КонецМесяца(ДанныеФормы.МесяцНачисления);
```
---
Могу Вам посоветовать только 2 инструмента:
1) http://infostart.ru/public/100967/
Открываете документ, созданный вручную, смотрите, что там реально написано.
Открываете документ, созданный программой, смотрите, что получилось в нём.
2) Конфигуратор, отладка по шагам. Доходите до присваиваний и смотрите все значения, обращая внимание на их тип.

Кстати, я бы табличные части подготавливал в ТаблицеЗначений, а потом загружал методом Загрузить(). Так оно и отработает быстрее, чем перебором, да и проконтролировать перед загрузкой (отладка!) проще.
---
было. делал. и консолью запросов смотрел и в табличную часть обработки записывал потом в табличную часть документа выгружал.
---
и что? Если Вы это делали, то в отладке перед Загрузить() смотрели типы колонок в ТЗ и в ТЧ? Значения колонок смотрели?
Как Вы определяете, что "не записалось"? Через форму документа? А Вы уверены, что всё верно заполнили? Реквизиты могут быть скрыты или очищены, если программа в зависимости от настроек другими реквизитами посчитает, что так надо.
А когда Вы заполняете программно, контроль со стороны формы вообще отсутствует! (внезапно!)
---
Трассировка по шагам. Вплоть до записи документа. И потом - ещё на один шаг, убедиться, что же легло в базу. Иного выхода никто не предложит.
А вариантов, что и где могло поменяться - масса, вплоть до подписок на события и расширений конфигурации!
---
Попробуйте даты изначально вставить в таблицу iikoДанные, ведь они известны - начало месяца и окончание месяца.