Отправка СМС по протоколу SMPP через МЕГАФОН или через веб-сервис МТС (8.3 обычное приложение) Добавлено: отправка СМС мегафон по http
Комментарии
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
Здравствуйте, ни как не могу зарегистрировать на Windows7x64. Создаю приложение потом компоненту, выбираю файл, винда пишет что есть такая и не ставит компоненту, а при мWinSocketActiveX = Новый COMОбъект("MSWinsock.Winsock.1"); выдает исключение, что и пропустил не подскажите? Очень нужно
(7) Prooa, или скачайте http://infostart.ru/public/393308/ там более наглядно, что приходит, что уходит
(11) Prooa, нашел в чем могла быть проблема.
в submit_sm_resp иногда приходит пакет с ошибкой если оператор по какой то причине не может отправить смс.
Добавьте в процедуру ОбработатьПакет_submit_sm_resp
КодОшибки = ВходящийПакет.GetValue(11);
Если КодОшибки <> 0 Тогда
ЗаписатьНовыйСтатусСМС("ошибка отправки");
Возврат;
КонецЕсли;
в submit_sm_resp иногда приходит пакет с ошибкой если оператор по какой то причине не может отправить смс.
Добавьте в процедуру ОбработатьПакет_submit_sm_resp
КодОшибки = ВходящийПакет.GetValue(11);
Если КодОшибки <> 0 Тогда
ЗаписатьНовыйСтатусСМС("ошибка отправки");
Возврат;
КонецЕсли;
Здравствуйте. При установке компоненты на сервер 2008 R2 Standart возникла проблема в пункте
8. Выбираем "Установка новых компонентов", и в диалоге выбираем нужную компоненту (тип файла «все файлы»).
все выбираю, но компонента в списке не появляется. Что может быть не так?
8. Выбираем "Установка новых компонентов", и в диалоге выбираем нужную компоненту (тип файла «все файлы»).
все выбираю, но компонента в списке не появляется. Что может быть не так?
(15) nikolayvg, точно выбираете тип файла "Все файлы(*.*)" т.к. если файл в папке то он по-любому будет виден. Или в службе компонентов не появляется? Если в службе компонентов, то попробуйте любую другую компоненту добавить, а потом компоненту винсок, должна появиться.
(15) nikolayvg, На всякий случай для остальных:
Воспользовался советом изhttp://infostart.ru/public/319296/ и установил Visual Basic
Воспользовался советом из
Добрый день, заключили договор с мегафоном, прислал вот это:
1. IP-адрес крипто-сервера
2. IP-адрес SMPP ESME
3. IP-адрес крипто-сервера УФ ОАО "МегаФон"
4. IP-адрес SMS-центра УФ ОАО "МегаФон"
5. Ключ isakmp
6. transform-set:
7. PFS:
8. Isakmp policy
От дальнейшей помощи категорически отказывается, будет ли Ваша разработка работать с Тюменским мегафоном (если там вообще есть различия)?
1. IP-адрес крипто-сервера
2. IP-адрес SMPP ESME
3. IP-адрес крипто-сервера УФ ОАО "МегаФон"
4. IP-адрес SMS-центра УФ ОАО "МегаФон"
5. Ключ isakmp
6. transform-set:
7. PFS:
8. Isakmp policy
От дальнейшей помощи категорически отказывается, будет ли Ваша разработка работать с Тюменским мегафоном (если там вообще есть различия)?
Пытаемся отправлять СМС через Мегафон СПб.
При отправке смс используем wireshark чтобы понять, почему не получается отправить смс
По логу wireshark:
1. [Connection establish request (SYN): порт сервера хххх]– отправляем запрос на установку соединения
2. [Connection establish acknowledge (SYN + ACK) : порт сервера хххх] – получаем подтверждение
3. Short Message Peer to Peer, Command: Bind_transceiver, Seq: 1, Len: 41 (пакет PDU пришлось переписать не вмещался пароль)
Length: 41
Operation: Bind_transceiver (0x00000009)
Sequence #: 1
System ID: *******
Password: *******
Version (if): 0.0
Type of number: Unknown (0x00)
Numbering plan indicator: Unknown (0x34)
Address: \001\001
4. В ответ от сервера получаем:
Transmission Control Protocol, Src Port: xxxx , Dst Port: yyyyy, Seq: 1, Ack: 42, Len: 0
Source Port: xxxx
Destination Port: yyyyy
[Stream index: 16]
[TCP Segment Len: 0]
Sequence number: 1 (relative sequence number)
Acknowledgment number: 42 (relative ack number)
Header Length: 20 bytes
Flags: 0x011 (FIN, ACK)
000. .... .... = Reserved: Not set
...0 .... .... = Nonce: Not set
.... 0... .... = Congestion Window Reduced (CWR): Not set
.... .0.. .... = ECN-Echo: Not set
.... ..0. .... = Urgent: Not set
.... ...1 .... = Acknowledgment: Set
.... .... 0... = Push: Not set
.... .... .0.. = Reset: Not set
.... .... ..0. = Syn: Not set
.... .... ...1 = Fin: Set [Expert Info (Chat/Sequence): Connection finish (FIN)]
[Connection finish (FIN)]
[Severity level: Chat]
[Group: Sequence]
[TCP Flags: *******A***F]
Window size value: 8186
[Calculated window size: 65488]
[Window size scaling factor: 8]
Checksum: 0x1182 [validation disabled]
Urgent pointer: 0
[SEQ/ACK analysis]
[This is an ACK to the segment in frame: 5265]
[The RTT to ACK the segment was: 0.026876000 seconds]
[iRTT: 0.028090000 seconds]
Нигде упоминания о полученной команде Bind_transceiver_resp в логе нет.
Обработка написана для клиент-серверного варианта.
При отправке смс пользователем запускается фоновое задание.
Сначала происходит инициализация и подключение.
Если сразу после подключения State = 7, отправляем Bind_transceiver
Далее входим в бесконечный цикл обработки State
Если сразу не получили состояние State = 7, ждем его и делаем запрос.
Основная проблема если смотреть из 1с компонента сразу после отправки
Bind_transceiver переходит в режим State = 8 (клиент закрыл подключение)
Событие DataArrival ни разу не сработало – ну оно и понятно.
Не могу понять причину такого поведения.
Админы с нашей стороны и со стороны ОпСоСа говорят, что у них никакие пакеты не режутся.
При отправке смс используем wireshark чтобы понять, почему не получается отправить смс
По логу wireshark:
1. [Connection establish request (SYN): порт сервера хххх]– отправляем запрос на установку соединения
2. [Connection establish acknowledge (SYN + ACK) : порт сервера хххх] – получаем подтверждение
3. Short Message Peer to Peer, Command: Bind_transceiver, Seq: 1, Len: 41 (пакет PDU пришлось переписать не вмещался пароль)
Length: 41
Operation: Bind_transceiver (0x00000009)
Sequence #: 1
System ID: *******
Password: *******
Version (if): 0.0
Type of number: Unknown (0x00)
Numbering plan indicator: Unknown (0x34)
Address: \001\001
4. В ответ от сервера получаем:
Transmission Control Protocol, Src Port: xxxx , Dst Port: yyyyy, Seq: 1, Ack: 42, Len: 0
Source Port: xxxx
Destination Port: yyyyy
[Stream index: 16]
[TCP Segment Len: 0]
Sequence number: 1 (relative sequence number)
Acknowledgment number: 42 (relative ack number)
Header Length: 20 bytes
Flags: 0x011 (FIN, ACK)
000. .... .... = Reserved: Not set
...0 .... .... = Nonce: Not set
.... 0... .... = Congestion Window Reduced (CWR): Not set
.... .0.. .... = ECN-Echo: Not set
.... ..0. .... = Urgent: Not set
.... ...1 .... = Acknowledgment: Set
.... .... 0... = Push: Not set
.... .... .0.. = Reset: Not set
.... .... ..0. = Syn: Not set
.... .... ...1 = Fin: Set [Expert Info (Chat/Sequence): Connection finish (FIN)]
[Connection finish (FIN)]
[Severity level: Chat]
[Group: Sequence]
[TCP Flags: *******A***F]
Window size value: 8186
[Calculated window size: 65488]
[Window size scaling factor: 8]
Checksum: 0x1182 [validation disabled]
Urgent pointer: 0
[SEQ/ACK analysis]
[This is an ACK to the segment in frame: 5265]
[The RTT to ACK the segment was: 0.026876000 seconds]
[iRTT: 0.028090000 seconds]
Нигде упоминания о полученной команде Bind_transceiver_resp в логе нет.
Обработка написана для клиент-серверного варианта.
При отправке смс пользователем запускается фоновое задание.
Сначала происходит инициализация и подключение.
Если сразу после подключения State = 7, отправляем Bind_transceiver
Далее входим в бесконечный цикл обработки State
Если сразу не получили состояние State = 7, ждем его и делаем запрос.
Основная проблема если смотреть из 1с компонента сразу после отправки
Bind_transceiver переходит в режим State = 8 (клиент закрыл подключение)
Событие DataArrival ни разу не сработало – ну оно и понятно.
Не могу понять причину такого поведения.
Админы с нашей стороны и со стороны ОпСоСа говорят, что у них никакие пакеты не режутся.
Функция СобратьПакет_BIND_Transceiver(sequence_number) Экспорт
ИдПользователя = Справочники.СервисыSMSрассылки.Мегафон.Пользователь;
Пароль = Справочники.СервисыSMSрассылки.Мегафон.Пароль;
ДлинаЛогина = СтрДлина(ИдПользователя);
Если ДлинаЛогина + 1 > 16 Тогда
ИдПользователя = Лев(ИдПользователя, 15);
ДлинаЛогина = 15;
СтрокаОшибки = "" + ТекущаяДата() + "
|Длина логина + нулевой символ превышает 16 символов, обрезаем.";
ЗаписьЖурналаРегистрации("ОтправкаСМСМегафон.СобратьПакет_BIND_Transceiver",
УровеньЖурналаРегистрации.Ошибка,
Метаданные.Обработки.РассылкаSMSМегафон, "Метаданные.Обработки.РассылкаSMSМегафон",
СтрокаОшибки);
КонецЕсли;
ДлинаПароля = СтрДлина(Пароль);
Если ДлинаПароля + 1 > 9 Тогда
Пароль = Лев(Пароль, 8);
ДлинаЛогина = 8;
СтрокаОшибки = "" + ТекущаяДата() + "
|Длина пароля + нулевой символ превышает 9 символов, обрезаем.";
ЗаписьЖурналаРегистрации("ОтправкаСМСМегафон.СобратьПакет_BIND_Transceiver",
УровеньЖурналаРегистрации.Ошибка,
Метаданные.Обработки.РассылкаSMSМегафон, "Метаданные.Обработки.РассылкаSMSМегафон",
СтрокаОшибки);
КонецЕсли;
Если Не ЗначениеЗаполнено(sequence_number) Тогда
sequence_number = 1;
КонецЕсли;
system_Тип = "";
Длина_system_Тип = СтрДлина(system_Тип);
interface_version = 4;
addr_ton = 0;
addr_npi = 0;
address_range = "";
Длина_address_range = СтрДлина(address_range);
//Длина header id + zero pass + zero System_Тип + zero interface_version addr_ton addr_npi address_range + zero
ДлинаПакета = 16 + (ДлинаЛогина + 1) + (ДлинаПароля + 1) + (Длина_system_Тип + 1) + 1 + 1 + 1 + Длина_address_range + 1;
Матрица = Новый COMSafeArray("VT_UI1", ДлинаПакета); // было 37
// HEADER
// command_length 4 octets
Матрица.SetValue(0,0);
Матрица.SetValue(1,0);
Матрица.SetValue(2,0);
Матрица.SetValue(3, ДлинаПакета); //command_length
// command_id 4 octets
Матрица.SetValue(4,0);
Матрица.SetValue(5,0);
Матрица.SetValue(6,0);
Матрица.SetValue(7,9); // Operation: BIND Tranceiver (0x00000009)
// command_id 4 octets
Матрица.SetValue(8,0);
Матрица.SetValue(9,0);
Матрица.SetValue(10,0);
Матрица.SetValue(11,0); //Не используется в PDU bind_transceiver.
// sequence_number 4 octets
Матрица.SetValue(12,0);
Матрица.SetValue(13,0);
Матрица.SetValue(14,0);
Матрица.SetValue(15, sequence_number); //уникальный номер последовательности bind_transceiver
Индекс = 16;
// BODY
// system_id COctet String max16
Для НомерСтроки = 1 По ДлинаЛогина Цикл
Матрица.SetValue(Индекс, КодСимвола(ИдПользователя, НомерСтроки));
Индекс = Индекс + 1;
КонецЦикла;
Матрица.SetValue(Индекс,0); // NULL для логина
Индекс = Индекс + 1;
// password COctet String max9
Для НомерСтроки = 1 По ДлинаПароля Цикл
Матрица.SetValue(Индекс, КодСимвола(Пароль, НомерСтроки));
Индекс = Индекс + 1;
КонецЦикла;
Матрица.SetValue(Индекс,0); // NULL для пароля
Индекс = Индекс + 1;
// system_Тип COctet String max13
Если ЗначениеЗаполнено(system_Тип) Тогда
Для НомерСтроки = 1 По Длина_system_Тип Цикл
Матрица.SetValue(Индекс, КодСимвола(system_Тип, НомерСтроки));
Индекс = Индекс + 1;
КонецЦикла;
КонецЕсли;
Матрица.SetValue(Индекс,0); // NULL для system_Тип
Индекс = Индекс + 1;
// interface_version
Матрица.SetValue(Индекс, КодСимвола(interface_version));//interface_version = 4 (версия 4 = 3.4)
Индекс = Индекс + 1;
// addr_ton
Матрица.SetValue(Индекс, addr_ton);
Индекс = Индекс + 1;
// addr_npi
Матрица.SetValue(Индекс, addr_npi);
Индекс = Индекс + 1;
// address_range
Если ЗначениеЗаполнено(address_range) Тогда
Для НомерСтроки = 1 По Длина_address_range Цикл
Матрица.SetValue(Индекс, КодСимвола(address_range, НомерСтроки));
Индекс = Индекс + 1;
КонецЦикла;
КонецЕсли;
Матрица.SetValue(Индекс,0); // NULL для address_range
Индекс = Индекс + 1;
// увеличиваем номер запроса
sequence_number = sequence_number + 1;
Возврат Матрица;
КонецФункции
Показать
(27) flord, ну мой совет поставить после пароля
Матрица.SetValue(29,0);
Матрица.SetValue(30,0);
Матрица.SetValue(31,0);
Матрица.SetValue(32,0);
Матрица.SetValue(33,52);
Матрица.SetValue(34,1);
Матрица.SetValue(35,1);
Матрица.SetValue(36,0);
Там где циферки слева соотвественно ваш индекс.
Просто эти значения четко подобраны и менять их не стоит.
Матрица.SetValue(29,0);
Матрица.SetValue(30,0);
Матрица.SetValue(31,0);
Матрица.SetValue(32,0);
Матрица.SetValue(33,52);
Матрица.SetValue(34,1);
Матрица.SetValue(35,1);
Матрица.SetValue(36,0);
Там где циферки слева соотвественно ваш индекс.
Просто эти значения четко подобраны и менять их не стоит.
Если оставить так – то «съедаются» последние несколько символов пароля.
Если смотреть описание pdu из описания протокола
Матрица.SetValue(32,0); это system_тип
Матрица.SetValue(33,52); это interface_version
Матрица.SetValue(34,1); это addr_ton
Матрица.SetValue(35,1); это addr_npi
Матрица.SetValue(36,0); это address_range
Я прав?
А за что отвечают эти значения, не подскажете?:
Матрица.SetValue(29,0);
Матрица.SetValue(30,0);
Матрица.SetValue(31,0);
Если смотреть описание pdu из описания протокола
Матрица.SetValue(32,0); это system_тип
Матрица.SetValue(33,52); это interface_version
Матрица.SetValue(34,1); это addr_ton
Матрица.SetValue(35,1); это addr_npi
Матрица.SetValue(36,0); это address_range
Я прав?
А за что отвечают эти значения, не подскажете?:
Матрица.SetValue(29,0);
Матрица.SetValue(30,0);
Матрица.SetValue(31,0);
(31) flord, Уже не помню за что отвечают, что-то разделитель, что то просто не нужно и по умолчанию 0, методом тыка подбирал, как пароль может съедаться? попробуйте вот так:
Функция СобратьПакет_BIND_Transceiver(sequence_number) Экспорт
ИдПользователя = Справочники.СервисыSMSрассылки.Мегафон.Пользователь;
Пароль = Справочники.СервисыSMSрассылки.Мегафон.Пароль;
ДлинаЛогина = СтрДлина(ИдПользователя);
Если ДлинаЛогина + 1 > 16 Тогда
ИдПользователя = Лев(ИдПользователя, 15);
ДлинаЛогина = 15;
СтрокаОшибки = "" + ТекущаяДата() + "
|Длина логина + нулевой символ превышает 16 символов, обрезаем.";
ЗаписьЖурналаРегистрации("ОтправкаСМСМегафон.СобратьПакет_BIND_Transceiver",
УровеньЖурналаРегистрации.Ошибка,
Метаданные.Обработки.РассылкаSMSМегафон, "Метаданные.Обработки.РассылкаSMSМегафон",
СтрокаОшибки);
КонецЕсли;
ДлинаПароля = СтрДлина(Пароль);
Если ДлинаПароля + 1 > 9 Тогда
Пароль = Лев(Пароль, 8);
ДлинаЛогина = 8;
СтрокаОшибки = "" + ТекущаяДата() + "
|Длина пароля + нулевой символ превышает 9 символов, обрезаем.";
ЗаписьЖурналаРегистрации("ОтправкаСМСМегафон.СобратьПакет_BIND_Transceiver",
УровеньЖурналаРегистрации.Ошибка,
Метаданные.Обработки.РассылкаSMSМегафон, "Метаданные.Обработки.РассылкаSMSМегафон",
СтрокаОшибки);
КонецЕсли;
Если Не ЗначениеЗаполнено(sequence_number) Тогда
sequence_number = 1;
КонецЕсли;
system_Тип = "";
Длина_system_Тип = СтрДлина(system_Тип);
interface_version = 4;
addr_ton = 0;
addr_npi = 0;
address_range = "";
Длина_address_range = СтрДлина(address_range);
//Длина header id + zero pass + zero System_Тип + zero interface_version addr_ton addr_npi address_range + zero
ДлинаПакета = 16 + (ДлинаЛогина + 1) + (ДлинаПароля + 1) + (Длина_system_Тип + 1) + 1 + 1 + 1 + Длина_address_range + 1;
Матрица = Новый COMSafeArray("VT_UI1", ДлинаПакета); // было 37
// HEADER
// command_length 4 octets
Матрица.SetValue(0,0);
Матрица.SetValue(1,0);
Матрица.SetValue(2,0);
Матрица.SetValue(3, ДлинаПакета); //command_length
// command_id 4 octets
Матрица.SetValue(4,0);
Матрица.SetValue(5,0);
Матрица.SetValue(6,0);
Матрица.SetValue(7,9); // Operation: BIND Tranceiver (0x00000009)
// command_id 4 octets
Матрица.SetValue(8,0);
Матрица.SetValue(9,0);
Матрица.SetValue(10,0);
Матрица.SetValue(11,0); //Не используется в PDU bind_transceiver.
// sequence_number 4 octets
Матрица.SetValue(12,0);
Матрица.SetValue(13,0);
Матрица.SetValue(14,0);
Матрица.SetValue(15, sequence_number); //уникальный номер последовательности bind_transceiver
Индекс = 16;
// BODY
// system_id COctet String max16
Для НомерСтроки = 1 По ДлинаЛогина Цикл
Матрица.SetValue(Индекс, КодСимвола(ИдПользователя, НомерСтроки));
Индекс = Индекс + 1;
КонецЦикла;
Матрица.SetValue(Индекс,0); // NULL для логина
Индекс = Индекс + 1;
// password COctet String max9
Для НомерСтроки = 1 По ДлинаПароля Цикл
Матрица.SetValue(Индекс, КодСимвола(Пароль, НомерСтроки));
Индекс = Индекс + 1;
КонецЦикла;
Матрица.SetValue(Индекс,0); // NULL для пароля
Индекс = Индекс + 1;
Матрица.SetValue(Индекс ,0);
Индекс = Индекс + 1;
Матрица.SetValue(Индекс ,0);
Индекс = Индекс + 1;
Матрица.SetValue(Индекс ,0);
Индекс = Индекс + 1;
Матрица.SetValue(Индекс ,52);
Индекс = Индекс + 1;
Матрица.SetValue(Индекс ,1);
Индекс = Индекс + 1;
Матрица.SetValue(Индекс ,1);
Индекс = Индекс + 1;
Матрица.SetValue(Индекс ,0);
Возврат Матрица;
КонецФункции
Показать
(32) Выяснилось, что по нашему заключенному договору с Мегафоном в этой системе Bind_transceiver не поддерживается
(Либо у Мегафона в принципе не поддерживается Bind_transceiver).
Работает Bind_transmitter.
A PDU на запрос BIND был правильным – изменил команду и заработало.
Спасибо за помощь!
(Либо у Мегафона в принципе не поддерживается Bind_transceiver).
Работает Bind_transmitter.
A PDU на запрос BIND был правильным – изменил команду и заработало.
Спасибо за помощь!
(35) Revolver_61,
1. неверные параметры в отправленном submit_sm.
2. от smsc других регионов и операторов пришел ответ о невозможности принять смс по разным причинам.
3. закончились деньги на лицевом счету, необходимо обратиться к своему менеджеру для выяснения вопроса.
1. неверные параметры в отправленном submit_sm.
2. от smsc других регионов и операторов пришел ответ о невозможности принять смс по разным причинам.
3. закончились деньги на лицевом счету, необходимо обратиться к своему менеджеру для выяснения вопроса.
Доброго времени!
Подскажите как именно работает с МТС? Обработку пока не скачивал.
В описании сказано. что вводится логин и пароль (МД5). Эти "учетки" просто пользователя (своего личного) или после договора компании с МТС о доставке смс?
По какому шлюзу обмен идет?
Спасибо!
Подскажите как именно работает с МТС? Обработку пока не скачивал.
В описании сказано. что вводится логин и пароль (МД5). Эти "учетки" просто пользователя (своего личного) или после договора компании с МТС о доставке смс?
По какому шлюзу обмен идет?
Спасибо!
(42) нет, мтс предоставляет в обычном формате, в мд5 на любом сайте конквертните, например http://decodeit.ru/md5
Здравствуйте.
Скачал конфигурацию, пытаюсь отправить СМС через МТС.
При запуске регламентного задания вываливается ошибка (см. скриншот) в функции "ПолучитьСтатистику" при вызове метода "GetStatistics".
В чем ошибка?
Скачал конфигурацию, пытаюсь отправить СМС через МТС.
При запуске регламентного задания вываливается ошибка (см. скриншот) в функции "ПолучитьСтатистику" при вызове метода "GetStatistics".
В чем ошибка?
Прикрепленные файлы:
Здравствуйте, BaHgaJI. Спасибо за обработку. Пытаюсь настроить. Пакет bind_transceiver уходит, bind_transceiver_resp прилетает, тут все ок. Дальше отправляем submit_sm. В итоге submit_sm_resp возвращается с кодом ошибки 1 - Invalid Message Length (sm_length parameter). Хотя параметр sm_length не менялся при настройке submit_sm.
Помогите, пожалуйста, разобраться, в чем может быть ошибка?
МассивКодовРусскихБукв = ЗакодироватьРусскийТекст(СообщениеТекст);
ДлинаСообщения = МассивКодовРусскихБукв.Количество();
............................. (часть кода заполнения первой части матрицы)
Индекс = 28;
Для НомерСтроки = 1 По ДлинаНомераТелефона Цикл
МатрицаДанных.SetValue(Индекс,КодСимвола(НомерТелефона,НомерСтроки));
Индекс = Индекс+1;
КонецЦикла;
МатрицаДанных.SetValue(39, 0);
МатрицаДанных.SetValue(40, 0); //esm_class
МатрицаДанных.SetValue(41, 0); //protocol_id
МатрицаДанных.SetValue(42, 0); //priority_flag
МатрицаДанных.SetValue(43, 0); //schedule_delivery_time
МатрицаДанных.SetValue(44, 0); //validity_period
МатрицаДанных.SetValue(45, 0); //registered_delivery //sa! 1
МатрицаДанных.SetValue(46, 0); //replace_if_present_flag
МатрицаДанных.SetValue(47, DataCod);//data coding
МатрицаДанных.SetValue(48, 0); //sm_default_msg_id
МатрицаДанных.SetValue(49, ДлинаСообщения); //sm_length
Индекс = 50; //short_message
Для НомерСтроки = 0 По ДлинаСообщения-1 Цикл
СимВ = МассивКодовРусскихБукв[НомерСтроки];
МатрицаДанных.SetValue(Индекс,СимВ);
Индекс = Индекс+1;
КонецЦикла;
ПоказатьПомогите, пожалуйста, разобраться, в чем может быть ошибка?