7.7 проведение вновь созданного документа

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем crysalis, 3 окт 2012.

  1. TopicStarter Overlay
    crysalis
    Offline

    crysalis

    Регистрация:
    26 мар 2012
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    1
    Создал новый документ - "акт приема-передачи товара", внутри него несколько галочек, табличная часть с указанием товара и несколько полей (фирма, контрагент, сотрудник и т.д.).
    Задача документа: поступление товара на склад и т.д.

    Внутри модуля документа создалась пустая обработка проведения. Выше нее я написал обработку "проведения по регистрам" и всё это дело аккуратно заполнил.
    Галочка "оперативный учет" у документа стоит и документ проводится, о чем говорит галочка в журнале, НО товар на склад не поступает...
    При этом документ еще не сохраняет положение галочек, которые реквизитами являются.
    Ощущение что документ не записывается и не проводится.

    Впал в ступор :blink:
    Взял документ "оприходование тмц" и по аналогу написал обработку проведения и проведение по регистрам. Толку ноль.

    Полез через дебаггер ловить в чем косяк, а дебаггер даже не тормознулся на точке в модуле документа. :blink:


    Понял, что где-то ступил, но не могу понять где...
    Подскажите пожалуйста:)
  2. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Чем гадать и тыкать "пальцем в небо" лучше выложи МДшник, и укажи идентификатор документа.
  3. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
  4. TopicStarter Overlay
    crysalis
    Offline

    crysalis

    Регистрация:
    26 мар 2012
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    1
    хм.... я боюсь это будет не совсем правильно)))
    там сам черт мозг сломает)))

    я лучше покажу состав формы:

    Код:
    Перем СписокДействий;
    /////////////////////////
    Процедура ВводНаОсновании(ДокументОснование)
    глЗаполнитьШапкуНаОсн(Контекст,ДокументОснование);  
    СинонимДокумента = ПредставлениеВида();
    СинонимОснования = ДокументОснование.ПредставлениеВида();
    Список = глПолучитьСписокВводимыхНаОсновании(ДокументОснование);
    Поз  = Список.НайтиЗначение(Вид());
    Если Поз = 0 Тогда
    Предупреждение("Документ """ + СинонимДокумента +
    """ нельзя вводить на основании """ + СинонимОснования + """", 60);
    СтатусВозврата(0);
    Возврат;
    КонецЕсли;
    Сотрудник = документоснование.авторсоздания.сотрудник;
    ТаблицаДокумента = СоздатьОбъект("ТаблицаЗначений");
    ДокументОснование.ВыгрузитьТабличнуюЧасть(ТаблицаДокумента);
    ТаблицаДокумента.ВыбратьСтроки();
    Пока ТаблицаДокумента.ПолучитьСтроку()=1 Цикл
    НоваяСтрока();
    Номенклатура= ТаблицаДокумента.Номенклатура;
    Единица  = ТаблицаДокумента.Единица;
    Партия  = ТаблицаДокумента.Партия;
    Количество = ТаблицаДокумента.Количество;
    КонецЦикла;
    КонецПроцедуры
    /////////////////////////
    Процедура ПриНачалеРедактированияСтроки()
    Если (Форма.ТекущаяКолонка() = "ТекстПартия") и (Номенклатура.Выбран()=1) Тогда
    Если (Номенклатура.ВидНоменклатуры = Перечисление.ВидыНоменклатуры.Услуга)
    или (Номенклатура.ВидНоменклатуры = Перечисление.ВидыНоменклатуры.Работа) Тогда
    Возврат;
    КонецЕсли;
    Параметр = СоздатьОбъект("СписокЗначений");
    Параметр.ДобавитьЗначение(Фирма   , "Фирма");
    Параметр.ДобавитьЗначение(Склад   , "Склад");
    Параметр.ДобавитьЗначение(Номенклатура , "Номенклатура");
    Параметр.ДобавитьЗначение(Партия  , "Партия");
    Параметр.ДобавитьЗначение(глВзятьКонтекст(Контекст) , "Контекст");
    ОткрытьФормуМодально("Справочник.Партии.ДляВыбораПартии", Параметр);
    Если Параметр.Получить("СтатусВозврата") = 0 Тогда
    Возврат;
    КонецЕсли;
    Партия = Параметр.Получить("Партия");
    иначеесли (Форма.ТекущаяКолонка() = "Единица") и (Номенклатура.Выбран()=1) тогда
    ОткрытьФормуМодально("Справочник.Единицы", Номенклатура);
    КонецЕсли;
    КонецПроцедуры
    /////////////////////////
    Процедура УправлениеДиалогом()
    Если Форма.Закладки.ТекущаяСтрока() = 1 Тогда
    Форма.ИспользоватьСлой("Шапка,Основной");
    Иначе
    Форма.ИспользоватьСлой("Шапка,ТабличнаяЧасть");
    КонецЕсли;	  
    КонецПроцедуры   
    /////////////////////////
    Процедура ПриВыбореЗакладки(Номер,Значение)
    УправлениеДиалогом();
    КонецПроцедуры
    /////////////////////////
    Процедура ПроставитьГалочки()
    Если ГалРемонт=1 тогда
    Ремонт = 1;
    КонецЕсли;
    Если ГалРегламент=1 тогда
    Регламент = 1;
    КонецЕсли;
    Если ГалПоверка=1 тогда
    Поверка = 1;
    КонецЕсли;
    КонецПроцедуры
    /////////////////////////
    Процедура ПриОткрытии()
    ПриЗаписиПерепроводить(1);
    УправлениеДиалогом();
    Если текущийдокумент().проведен() = 1 тогда
    ПроставитьГалочки()
    КонецЕсли;
    СписокДействий = СоздатьОбъект("СписокЗначений");
    СписокДействий.ДобавитьЗначение("Ввести на основании");
    СписокДействий.ДобавитьЗначение("Перейти в журнал");
    спр = создатьобъект("Справочник.Фирмы");
    спр1 = создатьобъект("Справочник.Склады");
    спр.НайтиПоНаименованию("ТД ""ТКС-Урал""",0);
    Фирма = спр.ТекущийЭлемент();
    спр1.НайтиПоНаименованию("5. Сервис",0);
    Склад = спр1.текущийЭлемент();
    КонецПроцедуры
    /////////////////////////
    Процедура ПоКнопкеПечать()
    Таб=СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица");
    Таб.ВывестиСекцию("Шапка");
    НомСтроки = 0;
    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл
    НомСтроки = НомСтроки + 1;
    Таб.ВывестиСекцию("Строка");
    КонецЦикла;
    ПечРаботы= "";
    Если ГалРемонт=1 тогда
    ПечРаботы= ПечРаботы+ " ремонт ";
    ремонт = 1;
    КонецЕсли;
    Если ГалРегламент=1 тогда
    ПечРаботы= ПечРаботы+ " регламент ";
    Регламент = 1;
    КонецЕсли;
    Если ГалПоверка=1 тогда
    ПечРаботы= ПечРаботы+ " поверка ";
    Поверка = 1;
    КонецЕсли;
    Таб.ВывестиСекцию("Подвал");
    
    Таб.ВывестиСекцию("Шапка1");
    ВыбратьСтроки();
    номСтроки = 0;
    Пока ПолучитьСтроку() = 1 Цикл
    НомСтроки = НомСтроки + 1;
    Таб.ВывестиСекцию("Строка1");
    
    КонецЦикла;
    Таб.ВывестиСекцию("Подвал1");
    Если слком=1 тогда
    Таб.ВывестиСекцию("служебком");
    КонецЕсли;
    Таб.ВывестиСекцию("Подвал2");
    Таб.ТолькоПросмотр(1);
    Таб.Показать();
    записать();
    КонецПроцедуры
    /////////////////////////
    
    Процедура ПоКнопкеОК()
    Записать();
    Провести();
    Форма.Закрыть();
    КонецПроцедуры
    Форма.ИспользоватьЗакладки(1);
    Форма.Закладки.ДобавитьЗначение(1,"Основная");
    Форма.Закладки.ДобавитьЗначение(2,"Табличная часть");
    Форма.Закладки.ТекущаяСтрока(1);

    Плюс

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

    вообщем, при этом варианте, документ проводится, но товара на складе не появляется...
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Внешне код проведения правильный. Хоть и много лишнего в нем.
    Движения должны быть. Каким отчетом смотрите?
  6. TopicStarter Overlay
    crysalis
    Offline

    crysalis

    Регистрация:
    26 мар 2012
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    1
    смотрю и просто в справочнике по остаткам и отчетами по остаткам.... ну нет ничего на складе и всё...

    причем если я делаю через документ "поступление тмц" - всё ок!
    товар отлично заносится на нужный склад... :(

    фигня какая-то...

    сам конфиг просто куча народу правило уже и вот по наследству мне досталась)))
    уж с ней я мозг поломал)))
    столько всякой хрени)
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    .. и вы еще добавляете))) (без обид).

    Поэтому и просил выложить МДшник. Никаких космических разработок думаю почерпнуть не получится, а вот проблему явно поможет решить.
  8. TopicStarter Overlay
    crysalis
    Offline

    crysalis

    Регистрация:
    26 мар 2012
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    1
    да без обид конечно))
    я еще тем более 1с только-только изучаю, а тут мне подкинули дров в топку :D
    держите)
    документ "АктПриемаОборудования"
    http://www19.zippyshare.com/v/83841297/file.html
    поржете хоть заодно сколько тут туфты накидали :D
  9. Vlad
    Offline

    Vlad Модераторы Команда форума Модератор

    Регистрация:
    16 авг 2006
    Сообщения:
    3.517
    Симпатии:
    19
    Баллы:
    29
    Конфа Комплексная? В справочнике хозяйственных операций этот новый документ у тебя прописан?
  10. TopicStarter Overlay
    crysalis
    Offline

    crysalis

    Регистрация:
    26 мар 2012
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    1
    конфа "торговля и склад", но там в самом глобальном конфиге куча всего прописано...
  11. GlukAl
    Offline

    GlukAl Опытный в 1С

    Регистрация:
    4 окт 2012
    Сообщения:
    187
    Симпатии:
    7
    Баллы:
    29
    я тоже глянул чисто из любопытства
    :blush:
    1 не сохраняются Склад и Фирама
    лучше переделать процедуру при открытии
    Код:
    Процедура ВводНового(флСкопирован,докОригинал)
    спр = создатьобъект("Справочник.Фирмы");
    спр.НайтиПоНаименованию("ТД ""ТКС-Урал""",0);
    Фирма = спр.ТекущийЭлемент();
    
    спр1 = создатьобъект("Справочник.Склады");
    спр1.НайтиПоНаименованию("5. Сервис",0);
    Склад = спр1.текущийЭлемент();
    КонецПроцедуры
    
    Процедура ПриОткрытии()
    ПриЗаписиПерепроводить(1);
    УправлениеДиалогом();
    Если текущийдокумент().проведен() = 1 тогда
    ПроставитьГалочки()
    КонецЕсли;
    СписокДействий = СоздатьОбъект("СписокЗначений");
    СписокДействий.ДобавитьЗначение("Ввести на основании");
    СписокДействий.ДобавитьЗначение("Перейти в журнал");
    КонецПроцедуры
    
    2 не сохраняются галочки
    в формуле галочки ГалРемонт напиши
    Код:
    Ремонт=ГалРемонт
    остальные галки анологично
    и переправь
    Код:
    Процедура ПроставитьГалочки()
    Если Ремонт=1 тогда
    ГалРемонт = 1;
    КонецЕсли;
    Если Регламент=1 тогда
    ГалРегламент = 1;
    КонецЕсли;
    Если Поверка=1 тогда
    ГалПоверка = 1;
    КонецЕсли;
    КонецПроцедуры
    
  12. TopicStarter Overlay
    crysalis
    Offline

    crysalis

    Регистрация:
    26 мар 2012
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    1
    о!
    за галочки спасибо...
    надо же так тупить %))))

    а фирма и склад у меня нормально сохраняются...))) осталось теперь понять почему на склад товар не заносится %)

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

    и может кто ткнет в документацию, где описано создание проводок документа и порядок этого дела? :blush:
  13. Vlad
    Offline

    Vlad Модераторы Команда форума Модератор

    Регистрация:
    16 авг 2006
    Сообщения:
    3.517
    Симпатии:
    19
    Баллы:
    29
    А какие именно проводки ты хочешь увидеть в ТиС?
  14. TopicStarter Overlay
    crysalis
    Offline

    crysalis

    Регистрация:
    26 мар 2012
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    1
    хочу занесение товара на склад... :blush:
  15. GlukAl
    Offline

    GlukAl Опытный в 1С

    Регистрация:
    4 окт 2012
    Сообщения:
    187
    Симпатии:
    7
    Баллы:
    29
    они у тебя заносятся с пустыми складом и фирмой :)
    попробуй 1с в режиме предприятие запускать из отладчика
  16. GlukAl
    Offline

    GlukAl Опытный в 1С

    Регистрация:
    4 окт 2012
    Сообщения:
    187
    Симпатии:
    7
    Баллы:
    29
    и в проведении
    Код:
    Процедура ПроведениеПоРегистрам()
    Регистры=СоздатьОбъект("Регистры");
    Рег=Регистры.ОстаткиТМЦ;
    Рег.УстановитьЗначениеФильтра("Склад",Склад,1);
    Если ИтогиАктуальны()=0 Тогда
    Рег.ВременныйРасчет(1);
    Регистры.РассчитатьРегистрыНа(ТекущийДокумент());
    КонецЕсли;							
    ТЗ=СоздатьОбъект("ТаблицаЗначений");
    ТекущийДокумент().ВыгрузитьТабличнуюЧасть(ТЗ);
    ТЗ.ВыбратьСтроки();
    Пока ТЗ.ПолучитьСТроку()=1 Цикл
    Регистр.ОстаткиТМЦ.Номенклатура=ТЗ.Номенклатура;
    Регистр.ОстаткиТМЦ.Фирма=ТекущийДокумент().Фирма;
    Регистр.ОстаткиТМЦ.Склад=ТекущийДокумент().Склад;
    Регистр.ОстаткиТМЦ.Количество=ТЗ.Количество;
    Регистр.ОстаткиТМЦ.Внутреннее = 0;
    Регистр.ОстаткиТМЦ.ЦенаПрод = 0;
    Регистр.ОстаткиТМЦ.ДвижениеПриходВыполнить();
    КонецЦикла;		  
    КонецПроцедуры
    
    лучше заменить
    Код:
      Регистр.ОстаткиТМЦ.Фирма=ТекущийДокумент().Фирма;
    Регистр.ОстаткиТМЦ.Склад=ТекущийДокумент().Склад;
    на
    Код:
      Регистр.ОстаткиТМЦ.Фирма=Фирма;
    Регистр.ОстаткиТМЦ.Склад=Склад;
  17. TopicStarter Overlay
    crysalis
    Offline

    crysalis

    Регистрация:
    26 мар 2012
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    1
    феерично....
    исправил фирму и склад
    всё заносится на склад
    спасибо всем :)

    зы
    ну я и дурень :D
Похожие темы
  1. Максим7878
    Ответов:
    5
    Просмотров:
    653
Загрузка...

Поделиться этой страницей