|
Внешняя обработка для выгрузки данных из 1с в блокнот | ☑ | ||
---|---|---|---|---|
0
sashasasha89
09.12.15
✎
09:46
|
Есть обработка. Она берют данные из 1с (Зарплата к начислению)и переносит их блокнот. Я её подредактировал, добавил нужные реквизиты.
Раньше она переносила данные в блокнот в таком виде: Иванов Иван Иванович; 945784е5784589;5000 То есть фамилию имя отчество;№ счета; сумму. Теперь пропал в этой строке № счета. Вроде в том коду ничего недалал. Для Каждого СтрокаТЗ из ЗарплатаКВыплате.Зарплата Цикл Физлицо = СтрокаТЗ.Физлицо; НомерЛицевогоСчета= ПолучитьЛицевойСчет(СтрокаТЗ.Физлицо,Банк); ТочкаЗапятая = Строка(Формат(СтрокаТЗ.Сумма, "ЧГ =0")); ТочкаЗапятая = СтрЗаменить(ТочкаЗапятая,",","."); СтрокаТекста=""+Физлицо+";"+СокрЛП(НомерЛицевогоСчета)+";"+ТочкаЗапятая+";"; //СтрокаТекста=СтрокаТЗ.Физлицо+";"+СокрЛП(НомерЛицевогоСчета); //+";"+ТочкаЗапятая+";"; |
|||
1
User_Agronom
09.12.15
✎
09:47
|
(0) ...Переносит данные в блокнот...
И это пишет программист! Куда катится этот мир? |
|||
2
lxs
09.12.15
✎
09:49
|
Счет не возвращает функция ПолучитьЛицевойСчет(СтрокаТЗ.Физлицо,Банк) скорее всего. Туда и смотри.
|
|||
3
lxs
09.12.15
✎
09:49
|
(1) Не занудствуй. С нашими банками и не такое бывает. Еще и на дискету попросят скинуть..
|
|||
4
Web00001
09.12.15
✎
09:51
|
(1)С чего ты взял, что ТС программист?
(3)(1)Не формат файла имел ввиду, а формат мозга ТС |
|||
5
User_Agronom
09.12.15
✎
09:58
|
(4) ...Вроде в том коду ничего недалал...
Кто на сцену выходит, то завётся актёр, А машину кто водит, тот, конечно, шофёр. Программный код (а именно он в стартовом топике) пишет и редактирует программист. (3) И что? На дискету можно скинуть файл. А записать напрямую в блокнот из 1С нельзя. Нужно 1. создать файл, 2. заполнить его, 3. записать, 4. а потом открыть блокнотом. По коду ничего нельзя сказать, так как непонятно, что делает функция "ПолучитьЛицевойСчет". |
|||
6
sashasasha89
09.12.15
✎
09:59
|
Функция ПолучитьЛицевойСчет(ФизЛицо,Банк) Экспорт
ЗапросНаСуществование = Новый Запрос(" |ВЫБРАТЬ РАЗРЕШЕННЫЕ | ЛицевыеСчетаРаботниковОрганизации.ФизЛицо, | ЛицевыеСчетаРаботниковОрганизации.НомерЛицевогоСчета, | ЛицевыеСчетаРаботниковОрганизации.Банк |ИЗ | РегистрСведений.ЛицевыеСчетаРаботниковОрганизации КАК ЛицевыеСчетаРаботниковОрганизации |ГДЕ | ЛицевыеСчетаРаботниковОрганизации.ФизЛицо = &ФизЛицо И ЛицевыеСчетаРаботниковОрганизации.Банк = &Банк"); ЗапросНаСуществование.УстановитьПараметр("ФизЛицо", ФизЛицо); ЗапросНаСуществование.УстановитьПараметр("Банк", Банк); Выборка = ЗапросНаСуществование.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Возврат Выборка.НомерЛицевогоСчета; Иначе Возврат Неопределено; КонецЕсли; КонецФункции |
|||
7
Godofsin
09.12.15
✎
10:03
|
(1) Может чувак пишет программу для роботизированной механической руки, которая ручкой/карандашом переписывает данные программы в блокнот. С листочками который.
|
|||
8
Godofsin
09.12.15
✎
10:04
|
(6) Ну и что говорит отладчик? Что возвращает функция?
|
|||
9
Godofsin
09.12.15
✎
10:05
|
+(8) ну и сразу проверить, что находится в переменной "банк".
|
|||
10
Godofsin
09.12.15
✎
10:06
|
+(9) И в СтрокаТЗ.Физлицо
|
|||
11
User_Agronom
09.12.15
✎
10:10
|
(6) Ндя. На один пост сразу четыре вопроса (8) (9) (10) и все по делу.
ТС, так ты слона не продашь. |
|||
12
Лефмихалыч
09.12.15
✎
10:10
|
(1) это дереввенский диалект программистского языка, все нормально.
|
|||
13
sashasasha89
09.12.15
✎
10:13
|
Отладчиком ставил точку остановки на НомерЛицевогоСчета= ПолучитьЛицевойСчет(СтрокаТЗ.Физлицо,Банк); Обработка теже данные показывает, ошибок нет.
Переменная Банк отправляет в справочник Банки. А ФизЛицо в Справосник ФизЛица и к документу ЗарплатаКВыплатеОрганизации. |
|||
14
User_Agronom
09.12.15
✎
10:16
|
(13) ФизЛицо в Справосник ФизЛица и к документу ЗарплатаКВыплатеОрганизации
А вот с этого места поподробнее. Что содержит в себе переменная ФизЛицо? Важен тип значения и само значение. |
|||
15
User_Agronom
09.12.15
✎
10:19
|
(12) А не могли бы Вы перевести с деревенского диалекта фразу "Переменная Банк отправляет в справочник Банки".
Никак не могу понять, что обозначает)) |
|||
16
DDwe
09.12.15
✎
10:21
|
(0) Читать вопрос с таким количеством "апшибок", мозг можно сломать. Как пишет, так и мысли выражает.
|
|||
17
sashasasha89
09.12.15
✎
10:21
|
(15) Подхватывает данные со справочника Банки
|
|||
18
DDwe
09.12.15
✎
10:22
|
(17) Что означает "Подхватывает ". Вам в (15) задали вопрос о переводе.
|
|||
19
User_Agronom
09.12.15
✎
10:23
|
(17) Это как?
Переменная это именованая часть памяти: у неё нет рук, лап и т.д. Она не может хватеть. |
|||
20
DDwe
09.12.15
✎
10:24
|
Нужно сразу подобные темы закрывать.
|
|||
21
Гёдза
09.12.15
✎
10:25
|
Какой мощный код:
ТочкаЗапятая = Строка(Формат(СтрокаТЗ.Сумма, "ЧГ =0")); ТочкаЗапятая = СтрЗаменить(ТочкаЗапятая,",","."); |
|||
22
Godofsin
09.12.15
✎
10:25
|
(21) Ага, я тоже оценил.
|
|||
23
sashasasha89
09.12.15
✎
10:27
|
Когда выбираю Банк и Перейти к определению он отправляет в Справочник Банки.
|
|||
24
Godofsin
09.12.15
✎
10:28
|
(23) Ты первый раз отладчиком пользуешься?
|
|||
25
DDwe
09.12.15
✎
10:29
|
(23) Ну иди, раз отправили.
|
|||
26
sashasasha89
09.12.15
✎
10:29
|
Почти. Я по инструкции из интернета делал внешнию печатную форму пользовался им.
|
|||
27
Гёдза
09.12.15
✎
10:30
|
Пройди курсы чтоли в начале какие
|
|||
28
Godofsin
09.12.15
✎
10:33
|
(23) Последний мой комментарий. Только из доброты душевной.
Поставь точку остановки на ТочкаЗапятая, в отладчике нажми Ctrl+Alt+W. Откроется Табло, в нем в первой колонке, но в разные строки напиши последовательно: НомерЛицевогоСчета, СтрокаТЗ.Физлицо, Банк. После чего сделай скрин получившегося и через savepic.ru выложи этот скрин здесь. Действуй. |
|||
29
Любопытная
09.12.15
✎
10:34
|
Какая прелесть :)
|
|||
30
User_Agronom
09.12.15
✎
10:34
|
(23) Переменная это именованнная часть памяти. У неё есть
1. Имя 2. Тип 3. Значение. Из того, что ты написал можно понять, что переменная имеет 1. Имя: Банк 2. Тип: предположительно, СправочникСсылка.Банки (а может и СправочникОбъект.Банки или ещё что-нибудь) 3. Значение совсем непонятно. Может оно пустая ссылка. |
|||
31
NcSteel
09.12.15
✎
10:35
|
(29) Это среди недельная пятница.
|
|||
32
User_Agronom
09.12.15
✎
10:35
|
(30) Значение переменной можно только присвоить (мы не говорим о низких языках программирования). Подхватывать переменная ничего не может.
|
|||
33
DDwe
09.12.15
✎
10:36
|
(29) И нам нравится.
|
|||
34
User_Agronom
09.12.15
✎
10:36
|
Я предлагаю ТС поподробнее ознакомится с азами программирования, а потом создать новый топик.
|
|||
35
mehfk
09.12.15
✎
10:37
|
(0) "Выгрузка в блокнот" это что? Распечатка?
|
|||
36
User_Agronom
09.12.15
✎
10:38
|
(35) Тут уже полфорума над этим голову ломает))
|
|||
37
NcSteel
09.12.15
✎
10:39
|
(35) Это бардак мозга ТС.
|
|||
38
sashasasha89
09.12.15
✎
10:42
|
(28) Я так уже пробывал делать. У меня почему то всегда тип и значения пусто.
|
|||
39
DDwe
09.12.15
✎
10:43
|
(38) Вот видимо ты и ответил на свой вопрос.
|
|||
40
sashasasha89
09.12.15
✎
10:46
|
(39) Я и с рабочей обработки табло пустые значания выдает.
|
|||
41
lera01
09.12.15
✎
10:47
|
(0) А может быть, злые бухи прознали, что ты все денюжки в блокнотик выгружаешь и перенесли счета сотрудников в другой банк, а ты все прежним пользуешься?
|
|||
42
Asmody
09.12.15
✎
10:47
|
Вот правильная внешняя обработка для выгрузки любых данных в блокнот:
![]() |
|||
43
DDwe
09.12.15
✎
10:48
|
(40) Вот что ты сейчас написал - "Я и с рабочей обработки табло пустые значания выдает"?
Какое Я выдает? Что выдает? Кому? Какие "значАния"? |
|||
44
DDwe
09.12.15
✎
10:49
|
(43) + Ты же походу сам не понимаешь, что несешь.
|
|||
45
DDwe
09.12.15
✎
10:49
|
(42) +100
|
|||
46
Godofsin
09.12.15
✎
10:52
|
(38) Ты хоть отладку запустил?
|
|||
47
trdm
09.12.15
✎
10:54
|
(1) Спесь непобедима?
|
|||
48
Web00001
09.12.15
✎
10:57
|
Кто нить подумал, что автор может не русскоговорящий и говорит через гуглтранслейт?
|
|||
49
User_Agronom
09.12.15
✎
10:59
|
(47) Это о чём?
|
|||
50
DDwe
09.12.15
✎
11:00
|
(48) Обычно люди предупреждают.
|
|||
51
DDwe
09.12.15
✎
11:01
|
(48) И потом, транслейт не делает орфографических ошибок.
|
|||
52
Web00001
09.12.15
✎
11:03
|
(51)может он и сам писать пробует? (40) очень на гуглтранслейт похоже
|
|||
53
DDwe
09.12.15
✎
11:05
|
(52) Если просмотреть другие темы ТС. То Ваша версия начинает выглядеть несостоятельно.
|
|||
54
sashasasha89
09.12.15
✎
11:08
|
Наверно перестал выдовать банковский счет когда завел новую переменную КоличествоРаспоряжений в цикле где как раз формируется мне нужная строка с банковским счетом.
Процедура КнопкаВыполнитьНажатие(Кнопка) Если ЗначениеЗаполнено(ПутьКФайлу) Тогда Банк = ЗарплатаКВыплате.Банк; Сумма = Строка(Формат(ЗарплатаКВыплате.СуммаДокумента, "ЧГ =0")); Сумма = СтрЗаменить(Сумма,",","."); Текст = Новый ТекстовыйДокумент(); Текст1 = Новый Массив(100); СтрокаТекста="MEMUMB"; Текст.ДобавитьСтроку(СтрокаТекста); СтрокаТекста="Номер организации: 746"; Текст.ДобавитьСтроку(СтрокаТекста); СтрокаТекста="Банк получатель: ; Текст.ДобавитьСтроку(СтрокаТекста); СтрокаТекста=Формат(Дата(ЗарплатаКВыплате.Дата),"ДФ=дд.ММ.гггг"); Текст.ДобавитьСтроку(СтрокаТекста); СтрокаТекста="Номер распоряжения: "+Строка(Число(ЗарплатаКВыплате.Номер)); Текст.ДобавитьСтроку(СтрокаТекста); КоличествоРаспоряжений=0; Для Каждого СтрокаТЗ из ЗарплатаКВыплате.Зарплата Цикл Физлицо = СтрокаТЗ.Физлицо; НомерЛицевогоСчета= ПолучитьЛицевойСчет(СтрокаТЗ.Физлицо,Банк); ТочкаЗапятая = Строка(Формат(СтрокаТЗ.Сумма, "ЧГ =0")); ТочкаЗапятая = СтрЗаменить(ТочкаЗапятая,",","."); СтрокаТекста=""+Физлицо+";"+СокрЛП(НомерЛицевогоСчета)+";"+ТочкаЗапятая+";"; //СтрокаТекста=СтрокаТЗ.Физлицо+";"+СокрЛП(НомерЛицевогоСчета); //+";"+ТочкаЗапятая+";"; КоличествоРаспоряжений=КоличествоРаспоряжений+1; Текст1[КоличествоРаспоряжений]=СтрокаТекста; КонецЦикла; СтрокаТекста="Количество распоряжений: " +КоличествоРаспоряжений; Текст.ДобавитьСтроку(СтрокаТекста); СтрокаТекста="Назначение платежа по реестру:"+НазначениеПлатежа ; Текст.ДобавитьСтроку(СтрокаТекста); СтрокаТекста="Без налога (НДС)"; Текст.ДобавитьСтроку(СтрокаТекста); СтрокаТекста="Общая сумма:"+Сумма; Текст.ДобавитьСтроку(СтрокаТекста); СтрокаТекста="----------"; Текст.ДобавитьСтроку(СтрокаТекста); Строка1=""; Для Каждого Строка1 из Текст1 Цикл Текст.ДобавитьСтроку(Строка1); КонецЦикла; Текст.ИспользуемоеИмяФайла = ПутьКФайлу; Текст.Записать(ПутьКФайлу,КодировкаТекста.Системная,); Сообщить ("Выгрузка успешно завершена. Выгружено: " + ЗарплатаКВыплате.Зарплата.Количество() + " строк документа"); Иначе Отказ = Истина; Возврат; КонецЕсли |
|||
55
NcSteel
09.12.15
✎
11:23
|
(52) Это не транслейт, это поток сознания. очень похоже что автор блондинка или блондин.
|
|||
56
User_Agronom
09.12.15
✎
11:26
|
(55) Код странный, но первый элемент массива Текст1 пустой.
Предположу, что нужно поменять строки местами: вместо КоличествоРаспоряжений=КоличествоРаспоряжений+1; Текст1[КоличествоРаспоряжений]=СтрокаТекста; написать Текст1[КоличествоРаспоряжений]=СтрокаТекста; КоличествоРаспоряжений=КоличествоРаспоряжений+1; Но это так, на уровне телепатии. |
|||
57
Godofsin
09.12.15
✎
11:29
|
(54) Дикий г*внокод конечно, но вроде должен быть рабочим..
|
|||
58
Лохматые Уши
09.12.15
✎
11:32
|
ТочкаЗапятая = СтрЗаменить(ТочкаЗапятая,",",".");
Как такое может работать? Запятая в имени переменной. |
|||
59
sashasasha89
09.12.15
✎
11:35
|
(56) Поменял. Тоже самое осталось.
|
|||
60
User_Agronom
09.12.15
✎
11:47
|
(59) Без отладчика очень сложно сказать в чём проблема.
|
|||
61
Мэс33
09.12.15
✎
11:53
|
Мне название темы очень нравится.
Фантазия нарисовала - вызов приложения "Блокнот", программное заполнение его содержимым. |
|||
62
sashasasha89
09.12.15
✎
13:34
|
Проблема в цикле. Когда я из цикла
Текст1[КоличествоРаспоряжений]=СтрокаТекста; КоличествоРаспоряжений=КоличествоРаспоряжений+1; удаляю и строку КоличествоРаспоряжений=0; тогда банковский счет появляется, но тогда в Количество распоряжений: ничего нет. |
|||
63
sashasasha89
10.12.15
✎
06:30
|
Всё заработало
Процедура КнопкаВыполнитьНажатие(Кнопка) Если ЗначениеЗаполнено(ПутьКФайлу) Тогда Банк = ЗарплатаКВыплате.Банк; Сумма = Строка(Формат(ЗарплатаКВыплате.СуммаДокумента, "ЧГ =0")); Сумма = СтрЗаменить(Сумма,",","."); Текст = Новый ТекстовыйДокумент(); СтрокаТекста="MEMUMB"; Текст.ДобавитьСтроку(СтрокаТекста); СтрокаТекста="Номер организации:726"; Текст.ДобавитьСтроку(СтрокаТекста); СтрокаТекста="Банк получатель:; Текст.ДобавитьСтроку(СтрокаТекста); СтрокаТекста=Формат(Дата(ЗарплатаКВыплате.Дата),"ДФ=дд.ММ.гггг"); Текст.ДобавитьСтроку(СтрокаТекста); СтрокаТекста="Номер распоряжения:"+Строка(Число(ЗарплатаКВыплате.Номер)); Текст.ДобавитьСтроку(СтрокаТекста); СтрокаТекста="Количество распоряжений:"+ ЗарплатаКВыплате.Зарплата.Количество(); Текст.ДобавитьСтроку(СтрокаТекста); СтрокаТекста="Назначение платежа по реестру:"+НазначениеПлатежа ; Текст.ДобавитьСтроку(СтрокаТекста); СтрокаТекста="Без налога (НДС)"; Текст.ДобавитьСтроку(СтрокаТекста); СтрокаТекста="Общая сумма:"+Сумма; Текст.ДобавитьСтроку(СтрокаТекста); СтрокаТекста="----------"; Текст.ДобавитьСтроку(СтрокаТекста); Для Каждого СтрокаТЗ из ЗарплатаКВыплате.Зарплата Цикл Физлицо = СтрокаТЗ.Физлицо; НомерЛицевогоСчета= ПолучитьЛицевойСчет(СтрокаТЗ.Физлицо,Банк); ТочкаЗапятая = Строка(Формат(СтрокаТЗ.Сумма, "ЧГ =0")); ТочкаЗапятая = СтрЗаменить(ТочкаЗапятая,",","."); СтрокаТекста=""+Физлицо+";"+СокрЛП(НомерЛицевогоСчета)+";"+ТочкаЗапятая+";"; //СтрокаТекста=СтрокаТЗ.Физлицо+";"+СокрЛП(НомерЛицевогоСчета); //+";"+ТочкаЗапятая+";"; Текст.ДобавитьСтроку(СтрокаТекста); КонецЦикла; Текст.ИспользуемоеИмяФайла = ПутьКФайлу; Текст.Записать(ПутьКФайлу,КодировкаТекста.Системная,); Сообщить ("Выгрузка успешно завершена. Выгружено: " + ЗарплатаКВыплате.Зарплата.Количество() + " строк документа"); Иначе Отказ = Истина; Возврат; КонецЕсли КонецПроцедуры |
|||
64
ЧеловекДуши
10.12.15
✎
06:36
|
(0) Ужас... Ажн писанину в текстовый файл, так назвать :)
|
|||
65
ЧеловекДуши
10.12.15
✎
06:36
|
(63) Кошмар, писать все на стороне Клиента :)
|
|||
66
VladZ
10.12.15
✎
06:54
|
Навеяло:
Вот код, Который грузит что-то в блокнот! А вот процедура, Которая в этом коде хранится, Для выгрузки данных, которые так не желают грузиться! А вот и наш автор, Который активно стремится Заставить эти данные грузиться Кодом, которым что-то грузит в блокнот! ...... // не окончено. Концовку придумайте сами. |
|||
67
Мэс33
10.12.15
✎
07:17
|
Со словом "блокнот" только одна рифма у меня на уме )))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |