Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Группировка служебных сообщений



сейчас сообщения выходят списком перебирая таб.часть, а как можно сделать чтобы формат сообщения было такой: Контрагент - ООО Ромашака не заполнен в строке 1,2,3,4,5.
Ответ:
Если Список.Получить(Знч.N1) = Неопределено Тогда
   Список[Знч.N2] = Знч.НомерСтроки;
Иначе
   Список[Знч.N2] = Список[Знч.N2] + "," + Знч.НомерСтроки;
КонецЕсли;
Вопрос: 7.7 ТИИ - пересчёт служебных данных, для чего это ?

База 1 документ, ОДИН документ, на 7000 строчек, самая большая *.dbf 43мегабайта. "пересчёт служебных данных" делался час и я не дождался, прервал процесс.
Предыстория:
"Закрыл период", удалил все документы, сделал 1 документ по вводу остатков, получился документ на 7000+ строк. Запустил ТИИ(1,2,3 пункты), упаковал таблицы, поскольку время было 4:30 утра, просмотрел, что вместе с пересчётом итогов тыкнул галку пересчёт служебных данных и ппц...
Эту операцию можно прерывать ? Благо был бэкап.
Ответ: Если документ служебный в 7.7. который заполняется более 10000 строк. Документ без проводок.
Полет нормальный, данные с документа тащатся нормально.
Только при ТИИ ругается, и номер строки 9999 в 0 переделывает.
Вопрос: Не выводит имя проекта

Всем доброго времени суток!

Такой вопрос - есть у меня регистр накоплений с контрагентами, проектами и суммой. Написала запрос, в котором хочу чтобы в таблицу вышли значения - контрагент, проект и остаток по сумме.
В итоге, реальность - выводит совершенно непонятные значения, которые отличаюся от значений в регистре и не хочет выводить имя проекта.

Вот код
Кликните здесь для просмотра всего текста
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
&НаКлиенте
Процедура СуммаПриИзменении(Элемент)
          СуммаПриИзмененииНаСервере();
КонецПроцедуры
 
&НаСервере
Процедура СуммаПриИзмененииНаСервере()
 
    // ПРОЕКТ НЕ УКАЗАН 
    // Проверяем долги по проектам предыдущим
    // Если долгов нет, записываем в аванс
    // Если долги есть, покрывать в порядке возрастания дат 
    Если НЕ ЗначениеЗаполнено(Объект.Проект) Тогда
        Запрос = Новый Запрос();
        
        // Выбираем из регистра по контрагенту все проекты, упорядоченые по дате                              
        Запрос.Текст = "ВЫБРАТЬ
                       |    ВзаиморассчётыПоПроектам.Период КАК Период,
                       |    ВзаиморассчётыПоПроектамОстатки.Контрагент,
                       |    ВзаиморассчётыПоПроектамОстатки.Проект,
                       |    ВзаиморассчётыПоПроектамОстатки.СуммаОстаток
                       |ИЗ
                       |    РегистрНакопления.ВзаиморассчётыПоПроектам КАК ВзаиморассчётыПоПроектам,
                       |    РегистрНакопления.ВзаиморассчётыПоПроектам.Остатки КАК ВзаиморассчётыПоПроектамОстатки
                       |ГДЕ
                       |    ВзаиморассчётыПоПроектамОстатки.Контрагент = &Контрагент
                       //|      И 
                       //|    ВзаиморассчётыПоПроектамОстатки.СуммаОстаток < 0
                       |
                       |УПОРЯДОЧИТЬ ПО
                       |    Период";
                       
                       
        Запрос.УстановитьПараметр("Контрагент", Объект.Контрагент);         
        //Запрос.УстановитьПараметр("Период", Объект.Дата);
 
        Результат = Запрос.Выполнить();
        Даты = Результат.Выгрузить().ВыгрузитьКолонку("Период");
        Сумма = 0;      
        
        // Берём первую с конца и проверяем остаток, и так далее, пока сумма > 0 
        // Если все проекты проверены, и сумма всё ещё > 0, записываем в аванс остаток
        
        // ЕСЛИ ПРОЕКТ УКАЗАН
        
        
    КонецЕсли;  
КонецПроцедуры


И два принтскрина.
Это то, что сейчас в регистре. (там нет имён проекта, потому что эти записи были сделаны до того, как я ввела справочник.проекты, в самой записи они есть)


А вот что показал результат запроса...
Ответ:
Сообщение от GreenkA
вы видимо так и оставили две несвязанные таблицы в запросе? Внимательно прочитайте, что я писала про конструктор...
Да, извините... Я жираф, долго доходит. Немного подумала и поняла, что в этом ошибка. Из двух таблиц сразу тянутся данные.
Вопрос: Сообщение с привязкой к полю формы

Хочу вывести мессаги с привязкой с полям формы...
Читаю документацию:

Делаю как сказано тут:
Ругается на второй параметр подчеркнутого метода. Иду в СП - меняю на то, как указано в СП (видимо, с момента написания статьи что-то поменялось?)

Теперь все отрабатывает без ошибок, но привязки к полям формы так и нет. Как ее сделать то? Вот мой код:

&НаСервере

...
...

ЭтотДокумент = ДанныеФормыВЗначение(Объект, Тип("ДокументОбъект.Документ1"));
ПараметрСоответствия = Новый Структура("ИдентификаторФормы, ИмяРеквизита",ЭтаФорма.УникальныйИдентификатор, Реквизит.Ключ);
УстановитьСоответствиеОбъектаИФормы(ЭтотДокумент, ПараметрСоответствия);

Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Значение поля """+Реквизит.Ключ+""" не заполнено.";
Сообщение.Поле = Реквизит.Ключ;
Сообщение.УстановитьДанные(ЭтотДокумент);
Сообщение.Сообщить();
Ответ: Сработало вот так:

Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Значение поля """+Реквизит.Ключ+""" не заполнено.";
Сообщение.Поле = Реквизит.Ключ;
Сообщение.УстановитьДанные(РеквизитФормыВЗначение("Объект"));
Сообщение.Сообщить(); 

Вопрос закрыт
Вопрос: При оповещении формы документа (После создания нового элемента справочника) вылезает пустое сообщение

Добрый день уважаемые форумчане !!!
прошу помощи у гуру !!!
Создаю Элемент справочника Контактные лица из документа
1C
1
2
3
4
5
6
7
8
9
&НаКлиенте
Процедура СоздатьКонтакт(Команда)
    
    ПараметрыОткрытия = Новый Структура;
    ПараметрыОткрытия.Вставить("Владелец", Объект.Контрагент);
    ОписаниеОповещения = Новый ОписаниеОповещения("СозданиеКЛЗавершение", ЭтаФорма);
    ОткрытьФорму("Справочник.КонтактныеЛица.Форма.ФормаЭлемента", Новый Структура("Основание", ПараметрыОткрытия), ЭтотОбъект, , , , ОписаниеОповещения, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
 
КонецПроцедуры
в форме элемента оповещаю владельца
-либо
1C
1
2
3
4
5
6
7
8
9
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
    
        Если  ЭтаФорма.ВладелецФормы.ИмяФормы = "Документ.Событие.Форма.ФормаСобытия"  Тогда 
            СтруктураОтвета = Новый Структура("КЛСсылка",Объект.Ссылка); 
            Оповестить("СоздатьКонтактЗавершение",СтруктураОтвета);
        КонецЕсли;
 
КонецПроцедуры
-либо
1C
1
2
3
4
5
6
7
8
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
 
        Если  ЭтаФорма.ВладелецФормы.ИмяФормы = "Документ.Событие.Форма.ФормаЭлектронногоПисьма" Тогда
            ОповеститьОВыборе(Объект.Ссылка);
        КонецЕсли;
 
КонецПроцедуры
- в обоих случаях оповещается все нормально, но почему то выходит пустое сообщение после того как программно добавляю контактное лицо ссылку в таб часть (если не добавляю - так же выходит пустое сообщение - сообщение "") ... первый раз с таким сталкиваюсь ... Это из за чего ?

З.Ы.
Отладчик не ловит - как бы ничего не происходит с кодом сообщить - точно

и по чему то не помогает
1C
1
ПодключитьОбработчикОжидания("УдалитьВсеСообщения",0.5,Истина);
1C
1
2
3
4
5
6
7
8
9
10
&НаКлиенте
Процедура УдалитьВсеСообщения()
    
        WshShell = Новый COMObject("WScript.Shell");
        WshShell.SendKeys("^+z");   //имитируем нажатие
        WshShell.SendKeys("^+я");   //для случая, если текущей является русская раскладка клавиатуры    
 
    
    //ОчиститьСообщения();
КонецПроцедуры

подскажите пожалуйста - в чем трабл ?
Заранее огромное спасибо !!!
Ответ:
Сообщение от andrey76
- Делал ... по коду никакой процедуры / функции нет которая бы с кодом сообщить() нету вообще ...
надеюсь проверяешь в файловой???
Вопрос: ЗуП вылетает при запуске определенной обработки, что делать?

Есть дописка, которая обновляет документы расчета, введенные на основании увольнения. При запуске этой обработки программа тупо закрывается без каких либо сообщений. В отладчике ничего не видно. На тестовой дате, для которой сделал 1 документ проходит. Что делать еще? Тестирование запускал, вроде ошибок нету.
Ответ: замечательно,но цикл зачем нужен был.Есть записи уже тогда пиши не знаю там в журнал или еще как-то,нет тогда модифицируй или ничего не делай
Вопрос: Сообщение администратору

Привет друзья ,столкнулся с такой проблемой,надо что бы при открытии документа,имя пользователя который открыл его,отправлялось сообщением администратору ,как это реализовать?
Ответ:
появилась крыса ,которая сливают инфу по конкретному док-у
я как вообще планирую реализовать,в модуле документа - При отрытии Формы .Передать параметры текущего сеанса сообщение на админа
пробовал делать через журнал регистрации не получилось,что-то вроде несоответствия типов
Вопрос: E-mail для отправки сообщения в отчете

Сделал отчет. Хочу отправить отчет через электронку. Проблема в автоматическом подтягивании элетронной почты получателя (получатель это параметр СКД.Контрагент). Нашел в общей форме отчетов кнопку для отправки сообщений. Как туда запихнуть этого получателя?? Как сделать чтобы автоматически подтягиваться электронная почта и сам контрагент??
Ответ:
&НаКлиенте
Процедура ОтправитьПоЭлектроннойПочте(Команда)
    ОтображениеСостояния = Элементы.Результат.ОтображениеСостояния;
    Если ОтображениеСостояния.Видимость = Истина
        И ОтображениеСостояния.ДополнительныйРежимОтображения = ДополнительныйРежимОтображения.Неактуальность Тогда
        ТекстВопроса = НСтр("ru='Отчет не сформирован. Сформировать?';uk='Звіт не сформований. Сформувати?'");
        Обработчик = Новый ОписаниеОповещения("ОтправитьПоЭлектроннойПочтеЗавершение", ЭтотОбъект);
        ПоказатьВопрос(Обработчик, ТекстВопроса, РежимДиалогаВопрос.ДаНет, 60, КодВозвратаДиалога.Да);
    Иначе
        ПоказатьДиалогОтправкиПоЭлектроннойПочте();
    КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ПоказатьДиалогОтправкиПоЭлектроннойПочте()
    ТабличныеДокументы = Новый СписокЗначений;
    ТабличныеДокументы.Добавить(ЭтотОбъект.Результат, ЭтотОбъект.НаименованиеТекущегоВарианта);
    
    ФормаЗаголовок = СтрЗаменить(НСтр("ru='Отправка отчета ""%1"" по почте';uk='Відправлення звіту ""%1"" поштою'"), "%1", ЭтотОбъект.НаименованиеТекущегоВарианта);
    
    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("ТабличныеДокументы", ТабличныеДокументы);
    ПараметрыФормы.Вставить("Тема",               ЭтотОбъект.НаименованиеТекущегоВарианта);
    ПараметрыФормы.Вставить("Заголовок",          ФормаЗаголовок);
    
    ОткрытьФорму("ОбщаяФорма.ОтправкаТабличныхДокументовПоПочте", ПараметрыФормы,,, );
КонецПроцедуры

&НаКлиенте
Процедура ОтправитьПоЭлектроннойПочтеЗавершение(Ответ, ДополнительныеПараметры) Экспорт
    Если Ответ = КодВозвратаДиалога.Да Тогда
        ПоказатьДиалогОтправкиПоЭлектроннойПочте();
    КонецЕсли;
КонецПроцедуры



В печатной форме в документах это делает вот эта процедура в общем модуле "формирование печатных форм".

ЗаполнитьПараметрыОтправки(ПараметрыОтправки, ДанныеОбъектовПечати, КоллекцияПечатныхФорм)
Вопрос: "Номер сообщения меньше либо равен ранее принятому" -обнуление номеров уже не решение?

В связи с мытарствами
  • Перестала работать синхронизация между БП 3.0.52(51) и 1С-Розница 2.2.5(6) после обновления

приходится исправлять "Номер сообщения меньше либо равен ранее принятому" или что-то подобное созвучное, не записал точно - ранее заходил в обработку "Регистрация изменений для обмена" и обнулял номера, после чего обмены надолго или навсегда продолжали работать.
Теперь же это срабатывает только раз, а после загрузки-выгрузки файлов обмена восстанавливаются прежние номера до обнуления, выдавая прежнюю ошибку

А само обнуление не помогает ничего ни выгрузить, ни загрузить, т.к. обнуления номеров снимает старую регистрацию для обмена и надо форсировать их изменение вручную

То ли я не выспался, то ли это действительно так?
Ответ:
Нужно не обнулять номера, а прибавлять к номерам 1, но делать это нужно на "правильной" стороне
Вопрос: Вывод сообщений с использованием цифр и букв

Только начинаю изучать 1С, помогите товарищи! Заранее благодарен.

Нужно чтобы по нажатию кнопки выводились сообщения с использованием цифр и букв

то есть входной массив цифр и входной массив букв

"123456" и "АБВГ" по нажатию должен печататься текст:





...





и закончится 6Г

в первом реквизите можно вводить только цифры

а во втором только не цифры
Ответ: () ты знаешь что делать )