viskvortsov / 1C-developer

Репозиторий курса "Программист 1С"
Apache License 2.0
6 stars 5 forks source link

Работа по заданию Книг #8

Closed vladmirnik closed 7 years ago

vladmirnik commented 8 years ago

Приветстсвую, Заводил Регистр накопления По остаткам книг, в коде по проведению документа застопорился на количестве книг чтобы для определенной книги при изменении кол-во увеличивалось задал цикл Строка.Количество = 0 для каждого строка из УчетКниг Цикл

Строка.Количество = Строка.количество + УчетКниг. Количество продолжить КонецЦикла;

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

viskvortsov commented 8 years ago

Что такое УчетКниг? Что содержится в этой переменной?

viskvortsov commented 8 years ago

Киньте скриншот модуля или текст модуля, так как не зная контекста тяжело ответить на вопрос

vladmirnik commented 8 years ago

вот ссылка https://cloud.mail.ru/public/BrGy/Y4B78bpDP сегодня еще дорабатывать буду по отчетам

vladmirnik commented 8 years ago

Документ Регистрация книг, в нем код по проведению

viskvortsov commented 8 years ago
  1. Непонятно для чего реквизит количество в справочнике Книги. Создается впечатление, что он не нужен.
  2. Есть явная проблема с логикой в документе РегистрацияКниг Есть книга в шапке документа и книга в таблице. При этом движения делаются в регистр по реквизиту из шапки, суммирую количество в строках документа, что создает парадокс: Выбрали книгу "Анна Каренина" в шапке, затем в первой строке: "Идиот" 2 шт "Горе от ума" - 3 шт А в регистр ОстаткиКниг записалось "Анна Каренина" - 5 шт.
  3. В документе РегистрацияКниг в ТЧ реквизит Количество строкового типа, а должен быть числом.
  4. В цикле:
Для Каждого Строка Из УчетКниг Цикл       

    КоличествоДокумента = КоличествоДокумента + Строка.Количество;        
    продолжить;

КонецЦикла;

Ключевое слово Продолжить не нужно, так как цикла сам продолжается, когда доходит до КонецЦикла.

  1. Не ясно для чего получать количество книг из справочника Книги в форме документа РегистрацияКниг:
&НаКлиенте
Процедура УчетКнигНазваниеПриИзменении(Элемент)
    // Вставить содержимое обработчика.
    ТекущиеДанные = Элементы.УчетКниг.ТекущиеДанные;

    ТекущиеДанные.Количество = ПолучитьКоличествоКниг(ТекущиеДанные.Название);

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

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

    возврат Название.Количество;

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