The problem here is that “file3” is simply a local variable. When you give the command “put (1,2) into file3.test1” SenseTalk tries to treat file3 as an object. If it finds a script object named “file3.script” (such as in the local suite) it will use that object, but if not it will simply set the file3 variable to be a property list containing a property “test1” with the value (1,2). In this case this variable has no connection to any script object, and the other script will have no access to its value.
So, I’m guessing that your file3 is not located in the same folder as file2. The “start using” command you’re using will add the file3 script object to the messaging path, but this doesn’t help it find the file3 script when the file3 variable is used as an object (I hope this isn’t too confusing!).
To ensure that the file3 script is found, instead of using the “start using” command, you should add the suite where file3 is located to your Helpers list, or use the OpenSuite command earlier in your script to open that suite.
Assuming that file3 can be found, you should be able to do this:
put file3.anotherFunction(item 1 of file3's test1)