Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

1С 7.7 Для тех, кто программирует.

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №21
 
24.07.2009 18:08

Нет. В документе ссылка на контрагента и данные будут взяты уже измененные. В этом и был смысл менять название контрагента при открытии документа.

МЛА
читатель
офлайн
Дата регистрации: 19.09.2006
Сообщений: 123
Пост №22
 
27.07.2009 11:58

Вроде все заработало... Только вот нужное "Наименование" Контрагента устанавливается в документе только со второго открытия этого документа??? В чем может быть дело?

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №23
 
27.07.2009 12:18

Попробуйте обновить форму, после установки наименования.<br>А еще вопрос - вы при выходе из документа не возвращаете наименование назад?

МЛА
читатель
офлайн
Дата регистрации: 19.09.2006
Сообщений: 123
Пост №24
 
29.07.2009 12:27

Нет, при выходе из документа наименование не возвращается... А может эта обработка должна срабатывать не при событии "ПриОткрытии()" документа , а при событии "ПередОткрытием()", хотя в 7-ке вроде нет такой процедуры?

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №25
 
29.07.2009 13:43

ПередОткрытием нет, а вот попробовать написать вызов изменения вне процедуры (в самом низу обычно) - это можно попробовать.

МЛА
читатель
офлайн
Дата регистрации: 19.09.2006
Сообщений: 123
Пост №26
 
29.07.2009 15:32

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

Thorvardr
читатель
офлайн
Дата регистрации: 25.02.2005
Сообщений: 3082
Пост №27
 
29.07.2009 15:50

"Вот это вы навернули :)<br>Идея понятна, но зачем так сложно? Недостаточно было написать так?<br><br>Процедура ПриОткрытии()<br> Если ПустоеЗначение(Контрагент)=0 Тогда<br>      Контрагенты=СоздатьОбъект("Справочник.Контрагенты");<br>      Если Контрагенты.НайтиЭлемент(Контрагент)=1 Тогда<br>       Контрагенты.Наименование=Контрагент.ПериодНаименование.Получить(ДатаДок);<br>       Контрагенты.Записать();<br>       Форма.Обновить();<br>      КонецЕсли;<br> КонецЕсли;<br>КонецПроцедуры<br><br><br><br>А вообще, работать, скорее всего не будет :) Так как по идее все это надо вписывать не в ПриОткрытии(), а вне функций и процедур в самый низ модуля.<br><br>И вообще, к чему такие сложности? Зачем наименование постоянно перезаписывать? Сделали бы функцию в глобальном модуле ПолучитьНаименование(НужнаяДата) и вызывали бы ее в нужных ситуациях. Буху бы объяснили, что в справочнике наименование указано то, которое актуально на настоящий момент. А вот в разных печатных формах запрашивайте историю его изменения.<br><br>P.S. Если бы меня попросили реализовать задачу, связанную с хранением истории наименования, я бы сказал "документы печатать надо своевременно" и не стал бы коверкать типовую конфигурацию."

asnisarenko
читатель
офлайн
Дата регистрации: 07.10.2009
Сообщений: 1
Пост №28
 
07.10.2009 00:04

"Сохраняй элементы справочника таким образом:<br><br>Пока Спр.ПолучитьЭлемент() = 1 Цикл<br> Если Спр.ЭтоГруппа() = 1 Тогда<br> Если Спр1.НайтиЭлемент(Спр.ТекущийЭлемент()) = 1 Тогда<br> Спр1.Наименование = Врег(Спр.ПолнНаименование);<br> Спр1.Записать();<br> КонецЕсли;<br> КонецЕсли;<br>КонецЦикла;<br><br>"

Показывать по 10 20 40 сообщений

Читают тему:

1 гостей
Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация