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

Вот модуль документа:

```1c
    &НаКлиенте
    Процедура ТабличнаяЧасть1НаименованиеПриИзменении(Элемент)
    СтрокаТЧ = Элементы.ТабличнаяЧасть1.ТекущиеДанные;
    СтрокаТЧ.ЕдИзм = ПолучитьЕдИзм(СтрокаТЧ.Наименование);
    СтрокаТЧ.УчетноеКоличество = ПолучитьУчетноеКоличество(СтрокаТЧ.Наименование);
    КонецПроцедуры

    &НаСервереБезКонтекста
    Функция ПолучитьЕдИзм(б)
    возврат б.ЕдИзм
    КонецФункции

    &НаСервереБезКонтекста
    Функция ПолучитьУчетноеКоличество(Материал)

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ОстаткиМатериаловОстаткиИОбороты.КоличествоКонечныйОстаток
    |ИЗ
    | РегистрНакопления.ОстаткиМатериалов.ОстаткиИОбороты КАК ОстаткиМатериаловОстаткиИОбороты
    |ГДЕ
    | ОстаткиМатериаловОстаткиИОбороты.Материал = &Материал";

    Запрос.УстановитьПараметр("Материал", Материал);

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    Количество = 0;
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Количество = ВыборкаДетальныеЗаписи.КоличествоКонечныйОстаток;
    КонецЦикла;

    возврат Количество

    КонецФункции

    &НаКлиенте
    Процедура ТабличнаяЧасть1ФактическоеКоличествоПриИзменении(Элемент)
    Сообщить("процедура выззвана");
    СтрокаТЧ = Элементы.ТабличнаяЧасть1.ТекущиеДанные;
    СтрокаТЧ.ИзлишкиКоличество = ПолучитьИзлишки(СтрокаТЧ.ФактическоеКоличество, СтрокаТЧ.Наименование);
    СтрокаТЧ.НедостатокКоличество = ПолучитьНедостаток(СтрокаТЧ.ФактическоеКоличество, СтрокаТЧ.Наименование);
    Элементы.ТабличнаяЧасть1.Обновить();
    КонецПроцедуры

    &НаСервереБезКонтекста
    Функция ПолучитьИзлишки(ФактическоеКоличество, Материал)
    КонечныйОстаток = ПолучитьУчетноеКоличество(Материал);
    Если ФактическоеКоличество > КонечныйОстаток Тогда
    возврат ФактическоеКоличество - КонечныйОстаток;
    Иначе
    возврат 0;
    КонецЕсли;
    КонецФункции

    &НаСервереБезКонтекста
    Функция ПолучитьНедостаток(ФактическоеКоличество, Материал)
    КонечныйОстаток = ПолучитьУчетноеКоличество(Материал);
    Если ФактическоеКоличество < КонечныйОстаток Тогда
    возврат КонечныйОстаток - ФактическоеКоличество;
    Иначе
    возврат 0;
    КонецЕсли;
    КонецФункции
```

выгрузка базы:
---
Здравствуйте.
У вас в приложенной базе есть несколько проблем, которые мешают решению поставленной задачи:
1. Процедуру ТабличнаяЧасть1ФактическоеКоличествоПриИзменении вы написали, но не привязали её в свойствах элемента формы ТабличнаяЧасть1ФактическоеКоличество к событию ПриИзменении. Соответственно, процедура просто не вызывается.
2. Если вы исправите пункт 1, то процедура начнет вызываться, но не будет выполнять поставленные задачи, т.к. споткнется на сравнении значений несравнимых типов. Это связано с тем, что в табличной части ТабличнаяЧасть1 документа Инвентаризация вы у всех полей, в которых должно храниться различное количество, тип данных указали Строка. Поменяйте на Число соответствующей вашей задаче длины и точности, и всё будет работать.
В коде есть ещё моменты, над которыми стоило бы поработать, но это выходит за рамки поставленного вопроса.
---
Здравствуйте.
У вас в приложенной базе есть несколько проблем, которые мешают решению поставленной задачи:
1. Процедуру ТабличнаяЧасть1ФактическоеКоличествоПриИзменении вы написали, но не привязали её в свойствах элемента формы ТабличнаяЧасть1ФактическоеКоличество к событию ПриИзменении. Соответственно, процедура просто не вызывается.
2. Если вы исправите пункт 1, то процедура начнет вызываться, но не будет выполнять поставленные задачи, т.к. споткнется на сравнении значений несравнимых типов. Это связано с тем, что в табличной части ТабличнаяЧасть1 документа Инвентаризация вы у всех полей, в которых должно храниться различное количество, тип данных указали Строка. Поменяйте на Число соответствующей вашей задаче длины и точности, и всё будет работать.
В коде есть ещё моменты, над которыми стоило бы поработать, но это выходит за рамки поставленного вопроса.
---
большое спасибо а помощь, с типами данных как-то не доглядел