7.7 Помогите новичку

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

  1. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    1)Можно. Установите длину наименования =0. Это предопределенный, а не обязательный реквизит.
    У справочника может не быть как кода, так и наименования.2)

    2)Сотудник это же элемент справочника. Ну вот наименованию справочника СпрПродКнига мы и присваиваем наименование справочника сотрудник.
    дерево нравится это.
  2. TopicStarter Overlay
    дерево
    Offline

    дерево Опытный в 1С

    Регистрация:
    7 мар 2014
    Сообщения:
    60
    Симпатии:
    0
    Баллы:
    26
    Спасибо огромное за помощь!! Вроде бы по чуть-чуть разбираюсь.
    Правда задание на этом не заканчивается. Следующий пункт "При отмене проведения документа соответствующие записи из справочника "Проданные книги" удалять".
    Не могу понять само задание. Я так понял, что само по себе отмена проведения нужна для того, чтобы если документ попробуют записать повторно, то запретить это дело. А вот здесь в задании получается, что это должна быть отдельная кнопка, при нажатии на которую повторная запись удаляется? Или нет? как Вы считаете?
  3. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    1) В журнале документов - ПКМ - сделать не проведенным. Вот что имелось ввиду в задании. При удалении тоже происходит отмена проведения.
    2) В модуле документа помимо предопределнной процедуры ОбработкаПроведения есть и ОбработкаУдаленияПроведения(). Почитайте в синтаксис-помошнике
    дерево нравится это.
  4. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Ну если помогает - жми "мне нравится"
    дерево нравится это.
  5. TopicStarter Overlay
    дерево
    Offline

    дерево Опытный в 1С

    Регистрация:
    7 мар 2014
    Сообщения:
    60
    Симпатии:
    0
    Баллы:
    26
    Гуглил пример ОбработкиУдаленияПроведения.. Нашёл только один пример, но как - то смутно всё.
    Т.е. после процедуры ОбработкаПроведения, где она закончилась, ниже пишу новую процедуру ОбработкаУдаленияПроведения.
    Мой ход действий?
    Найти выбранного сотрудника в справочнике
    Если нашел тогда
    найти книгу и количество
    если нашел тогда
    Тогда... Не знаю.. Стереть записи и записать заново?
  6. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    если нашел, то нужно уменьшить количество... Т.е. все с точностью до наоборот из ОбработкаПроведения.
    И еще... позаботьтесь о том чтобы пользователь не мог поменять табличную часть документа если он проведен. Иначе у вас абракадабра получится...
    Нужно в модуле формы документа

    Процедура ПриОткрытии()
    Форма.ТолькоПросмотр(Проведен());
    КонецПроцедуры
    дерево нравится это.
  7. TopicStarter Overlay
    дерево
    Offline

    дерево Опытный в 1С

    Регистрация:
    7 мар 2014
    Сообщения:
    60
    Симпатии:
    0
    Баллы:
    26
    Вот я почему и подумал, что надо удалять.. Вдруг надо изменить количество проданных книг или саму книгу не ту записали? Это не имеет отношения к этой задачи, конечно.. Просто на будущее
  8. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Ничего удалять не нужно....
    Если документ нужно изменить - пользователь должен сделать его не проведенным. Значит у вас уменьшится количество.
    Если бы действовали через регистры, то и головняка бы не было. Все действия по корректному изменению данных брала бы на себя платформа.
    Но задание есть задание... Мучайтесь))))))))
  9. TopicStarter Overlay
    дерево
    Offline

    дерево Опытный в 1С

    Регистрация:
    7 мар 2014
    Сообщения:
    60
    Симпатии:
    0
    Баллы:
    26
    Уже 4 день))))
    А подождите... Вот количество можно уменьшить, потому что это число. Его можно обнулить? а как быть с строками? аааа, я опять запутался..
    А как его сделать не проведенным, если его уже провели?
    ааааааа.. То есть пользователь открывает документ, выбирает номер нужный, щёлкает правой кнопкой и из списка команд выбирает "Сделать не проведенным"?? И именно в этот момент срабатывает Обработка удаление проведения???
  10. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Можно удалить элемент совсем.. Но зачем? Пусть остается. Нулевые значения можно фильтровать в отчете или форме списка справочника.

    Из самого документа отменить проведения нельзя. Только из журнала документов.
    Но документе - ПКМ - Сделать не проведенным
    дерево нравится это.
  11. TopicStarter Overlay
    дерево
    Offline

    дерево Опытный в 1С

    Регистрация:
    7 мар 2014
    Сообщения:
    60
    Симпатии:
    0
    Баллы:
    26
    А обработка удаления проведения в этот момент срабатывает?
  12. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Только в этот момент она и срабатывает...
    Вот выдержка из документации


    ОбработкаУдаленияПроведения()
    Назначение:
    Предопределенная процедура обработки удаления проведения документа или удаления проведенных документов в любом режиме.
    Замечание:
    Данная процедура может располагаться только в модулях документов
    дерево нравится это.
  13. TopicStarter Overlay
    дерево
    Offline

    дерево Опытный в 1С

    Регистрация:
    7 мар 2014
    Сообщения:
    60
    Симпатии:
    0
    Баллы:
    26
    А вот в задании всё ж таки сказано, что при отмене проведения, соответсвующие записи из справочника удалять.. Или обнулять всё таки? А реквизит Наименование и Книга это же строка, их только удалить можно ведь?
  14. TopicStarter Overlay
    дерево
    Offline

    дерево Опытный в 1С

    Регистрация:
    7 мар 2014
    Сообщения:
    60
    Симпатии:
    0
    Баллы:
    26
    Процедура ОбработкаУдаленияПроведения()
    СпрПродКниги=СоздатьОбъект("Справочник.ПроданныеКниги")
    СпрПродКниги.НайтиЭлемент(Сотрудник.Наименование)
    Если СпрПродКниги.Выбран()=1 Тогда
    СпрПродКниги.Удалить()
    КонецЕсли
    КонецПроцедуры

    Почему не правильно? ) Не правильно удаляю? Или всё не правильно?
  15. TopicStarter Overlay
    дерево
    Offline

    дерево Опытный в 1С

    Регистрация:
    7 мар 2014
    Сообщения:
    60
    Симпатии:
    0
    Баллы:
    26
    Так и не смог удалить строчку... И ещё вопрос по отчёту возник... Как на форму отчёта вытащить реквизиты?? У меня там только две кнопки Сформировать и закрыть..
  16. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    1)Можно и удалять... Но при условии что количество = 0
    2)Удалить можно элемент справочника. Реквизит можно только очистить
  17. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    А если количество строк не одна? Где цикл?
    дерево нравится это.
  18. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Меню-Вставить-Элемент диалога
    дерево нравится это.
  19. TopicStarter Overlay
    дерево
    Offline

    дерево Опытный в 1С

    Регистрация:
    7 мар 2014
    Сообщения:
    60
    Симпатии:
    0
    Баллы:
    26
    Я вчера ещё цикл добавил, но видимо тоже не правильно, не работает


    Процедура ОбработкаУдаленияПроведения()
    СпрПродКниги=СоздатьОбъект("Справочник.ПроданныеКниги")
    ВыбратьСтроки();
    Пока ПолучитьСтроку()=1 Цикл
    СпрПродКниги.НайтиЭлемент(Сотрудник.Наименование) // вот тут тоже не уверен. Реквезит - наименование
    Если СпрПродКниги.Выбран()=1 Тогда
    СпрПродКниги.Удалить()
    Иниче Сообщить("Элемент не найден");
    КонецЕсли
    КонецЦикла
    КонецПроцедуры
  20. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Почти верно... Метод только другой и если у вас было НЕСКОЛЬКО продаж в разных документах - нужна проверка. Сразу удалять нельзя

    Процедура ОбработкаУдаленияПроведения()
    СпрПродКниги=СоздатьОбъект("Справочник.ПроданныеКниги")
    ВыбратьСтроки();
    Пока ПолучитьСтроку()=1 Цикл
    Если СпрПродКниги.НайтиПоНаименованию(Сотрудник.Наименование)=1 Тогда // вот так надо
    Если СпрПродКниги.Количество= Количество Тогда //сравним с количеством в табличной части
    СпрПродКниги.Удалить();
    Иначе //уменьшим остаток на количество в документе
    СпрПродКниги.Количество=СпрПродКниги.Количество-Количество;
    СпрПродКниги.Записать()
    КоненцЕсли;
    Иниче Сообщить("Элемент не найден");
    КонецЕсли
    КонецЦикла
    КонецПроцедуры
    дерево нравится это.
Похожие темы
  1. memphisto
    Ответов:
    1
    Просмотров:
    1.077
Загрузка...

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